<div class="control-buttons">
<div class="control-btn" id="menu-fullscreen-btn" title="Toggle Fullscreen">⛶</div>
</div>
<<script>>
$(document).ready(function() {
$('#menu-fullscreen-btn').on('click', function(e) {
e.preventDefault();
e.stopPropagation();
console.log('Menu fullscreen button clicked'); // Debug
try {
if (document.fullscreenElement) {
console.log('Exiting fullscreen'); // Debug
document.exitFullscreen();
} else {
console.log('Entering fullscreen'); // Debug
document.documentElement.requestFullscreen();
}
} catch (error) {
console.error('Fullscreen error:', error);
}
});
// Update fullscreen button icon on fullscreen change
$(document).on('fullscreenchange', function() {
console.log('Fullscreen state changed:', document.fullscreenElement ? 'ON' : 'OFF'); // Debug
// Aquí puedes cambiar el icono del botón si quieres
// $('#menu-fullscreen-btn').text(document.fullscreenElement ? '⛶' : '⛶');
});
});
<</script>>
<style>
.control-buttons {
position: fixed;
top: 0px;
left: 15px;
display: flex;
flex-direction: column;
gap: 1px;
z-index: 100000000 !important;
}
.control-btn {
width: 25px;
height: 25px;
background: rgba(20, 20, 20, 0.8);
border: 2px solid #d9c27e;
border-radius: 8px;
display: flex;
justify-content: center;
align-items: center;
font-size: 12px;
color: #d9c27e;
cursor: pointer;
transition: all 0.3s ease;
user-select: none;
box-shadow: 0 0 10px rgba(217, 194, 126, 0.2);
}
.control-btn:hover {
background: rgba(40, 40, 40, 0.9);
box-shadow: 0 0 15px rgba(217, 194, 126, 0.4);
transform: scale(1.05);
}
.control-btn:active {
transform: scale(0.95);
}
@media screen and (max-width: 768px) {
.control-btn {
width: 22px;
height: 22px;
font-size: 10px;
}
.control-buttons {
top: -18px;
left: 9px;
gap: 0px;
}
}
@media screen and (max-width: 768px) {
.control-btn {
width: 22px;
height: 22px;
font-size: 10px;
}
.control-buttons {
top: -18px;
left: 9px;
gap: 0px;
}
}
@media screen and (max-width: 480px) {
.control-btn {
width: 20px;
height: 20px;
font-size: 9px;
}
.control-buttons {
top: -20px;
left: 10px;
gap: 0px;
}
}
#disclaimer-container {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
z-index: 999999;
}
#disclaimer-box {
background: linear-gradient(135deg, rgba(20, 20, 20, 0.95), rgba(40, 40, 40, 0.95));
color: #d9c27e;
padding: 30px;
border: 2px solid #d9c27e;
border-radius: 10px;
text-align: center;
max-width: 90vw;
max-height: 80vh;
box-shadow: 0 0 30px rgba(217, 194, 126, 0.3);
overflow-y: auto;
box-sizing: border-box;
display: flex;
flex-direction: column;
}
#disclaimer-box h1 {
font-family: 'personal-services', 'Arial', sans-serif;
color: #d9c27e !important;
text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8);
margin: 0 0 20px 0;
font-size: clamp(1.6rem, 4vw, 2.2rem);
font-weight: 900;
letter-spacing: 0.1em;
flex-shrink: 0;
}
.disclaimer-text {
color: white !important;
line-height: 1.6;
margin: 0 0 25px 0;
font-size: clamp(0.9rem, 2.5vw, 1.1rem);
flex-grow: 1;
overflow-y: auto;
}
.disclaimer-button {
margin-top: 20px;
flex-shrink: 0;
position: sticky;
bottom: 0;
background: linear-gradient(135deg, rgba(20, 20, 20, 0.95), rgba(40, 40, 40, 0.95));
padding: 10px 0 0 0;
}
#disclaimer-container .disclaimer-button a,
#disclaimer-container .disclaimer-button a:link,
#disclaimer-container .disclaimer-button a:visited,
.disclaimer-button a[data-passage],
body .disclaimer-button a {
display: inline-block !important;
font-family: 'personal-services', 'Arial', sans-serif !important;
padding: 12px 25px !important;
background: none !important;
background-color: transparent !important;
border: none !important;
border-radius: 0 !important;
color: #d9c27e !important;
text-decoration: none !important;
font-size: clamp(1.2rem, 3vw, 1.6rem) !important;
font-weight: 900 !important;
text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8) !important;
box-shadow: none !important;
transition: all 0.3s ease !important;
cursor: pointer !important;
text-transform: uppercase !important;
letter-spacing: 0.1em !important;
margin: 0 !important;
outline: none !important;
transform: translate(0px, -10px) !important;
}
#disclaimer-container .disclaimer-button a:hover {
color: #E6D3A3 !important;
background: none !important;
background-color: transparent !important;
box-shadow: none !important;
text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8) !important;
transform: none !important;
border: none !important;
transform: translate(0px, -15px) !important;
}
#disclaimer-container .disclaimer-button a:focus,
#disclaimer-container .disclaimer-button a:active {
background: none !important;
background-color: transparent !important;
border: none !important;
outline: none !important;
}
/* Mobile optimizations */
@media (max-width: 768px) {
#disclaimer-box {
padding: 15px;
max-width: 95vw;
margin: 10px;
max-height: 85vh;
}
#disclaimer-box h1 {
font-size: clamp(1.3rem, 4.5vw, 1.7rem);
margin-bottom: 12px;
}
.disclaimer-text {
font-size: clamp(0.8rem, 2.2vw, 0.95rem);
line-height: 1.4;
margin-bottom: -15px;
}
.disclaimer-button {
margin-top: 15px;
padding: 8px 0 0 0;
}
#disclaimer-container .disclaimer-button a {
padding: 8px 20px !important;
font-size: clamp(1rem, 3.5vw, 1.3rem) !important;
}
}
@media (max-width: 480px) {
#disclaimer-box {
padding: 12px;
max-height: 90vh;
}
#disclaimer-box h1 {
font-size: clamp(1.1rem, 4vw, 1.4rem);
margin-bottom: 10px;
}
.disclaimer-text {
font-size: clamp(0.75rem, 2vw, 0.85rem);
margin-bottom: -45px;
}
.disclaimer-button {
margin-top: 12px;
padding: 6px 0 0 0;
}
#disclaimer-container .disclaimer-button a {
font-size: clamp(0.9rem, 3.2vw, 1.1rem) !important;
padding: 6px 15px !important;
}
}
/* Very small screens - ensure button is always visible */
@media (max-height: 600px) {
#disclaimer-box {
max-height: 95vh;
padding: 10px;
}
#disclaimer-box h1 {
margin-bottom: 8px;
}
.disclaimer-text {
margin-bottom: -90px;
transform: translate(0px, -22px);
}
.disclaimer-button {
margin-top: 10px;
transform: translate(0px, 15px);
background: transparent;
height: 10vw;
}
}
@font-face {
font-family: 'personal-services';
src: url('path/to/personal-services.woff2') format('woff2'),
url('path/to/personal-services.woff') format('woff');
font-weight: normal;
font-style: normal;
}
</style>
<div id="disclaimer-container">
<div id="disclaimer-box">
<h1>⚠️ IMPORTANT⚠️</h1>
<p class="disclaimer-text">This game is intended for audiences <span style="color: #ff6666;">18 years and older</span>. It contains explicit
content, including depictions of sexual themes, violence, and other sensitive or potentially disturbing material.</p>
<div class="disclaimer-button">
[[ACCEPT & PLAY|StartGame]]
</div>
</div>
</div>
<<script>>
window.setLighting(100);
<</script>> <<script>>
let questId = addQuestWithStages(
"The captain",
"Back at the station",
[
"The captain has summoned you. Head to his office at the station.",
"Speak with Captain Havook. This might be more than just a routine check-in."
],
"📋",
"main",
"captain_quest", // Custom ID
"img/quest.png" // Quest image
);
// Add stage images so completion notifications show the quest image
if (window.questSystem && window.questSystem.quests["captain_quest"]) {
window.questSystem.quests["captain_quest"].stageImages = [
"img/quest.png", // Stage 1
"img/quest.png" // Stage 2
];
}
State.variables.captainQuestId = "captain_quest";
<</script>><<createMenu>>
<<hideMenuElement "phone-btn">>
<<hideMenuElement "inventory-btn">>
<<hideMenuElement "shop-btn">>
<<toggleMenuElement "lantern-row">>
<<script>>
expandInventoryBy5()
<</script>>
<<script>>
hideCharacterMenu();
<</script>><<showMenuElement "phone-btn">>
<<showMenuElement "inventory-btn">>
<<showMenuElement "shop-btn">>
<<toggleMenuElement "lantern-row">><<showNPC "bruno" "img/characters/bruno/bruno.png" "Bruno">><<dialogue "Dr. Morrison" "Detective Casey, thank goodness you're here!" "talk">>
<<addDialogue "Casey" "What exactly happened, Doctor?" "talk">>
<<addDialogue "" "The doctor's coat is stained with something dark." "description">>
<<addDialogue "Dr. Morrison" "The patients... they started acting strange." "talk">>
<<addDialogue "" "I have a bad feeling about this place." "thoughts">>
<<addDialogue "Casey" "Any survivors?" "talk">>
<<timed 100ms>>
<<vdialogue "Gabriela Rodriguez" "$McName, when I saw you enter, I thought you weren't going to talk to me..." "talk">>
<</timed>><<unlockCharacterOnly 1>> <<unlockPhoto 1 5>>
<<unlockVideo 1 2>> <<script>>
completeQuestStage("medical_mystery");
<</script>> <<script>>
window.addDocumentWithNotification(
"lab_report",
"Laboratory Report",
"Chemical analysis results",
`Blood samples show unknown contamination.
Further testing required.
- Dr. Smith, Chief Medical Officer`,
"medical",
"🧪"
);
<</script>>
<<script>>
window.addDocumentWithNotification(
"resignation_form",
"Resignation Form",
"The last document you take from NVPD",
"",
"close_photo",
"📋",
{
imagePath: "img/documents/rf.png",
location: "New Veris Police Department",
photographer: "Captain Havook",
frontDescription: `A pre-established resignation form from the New Veris Police Department.`
}
);
<</script>> <!-- Medical items -->
<<script>>window.addItemFromDatabase('medkit', 1);<</script>>
<<script>>window.addItemFromDatabase('bandages', 3);<</script>>
<<script>>window.addItemFromDatabase('stim', 2);<</script>>
<<script>>window.addItemFromDatabase('pills', 5);<</script>>
<<script>>window.addItemFromDatabase('antidep', 3);<</script>>
<<addItem "battery" 5>>
<<addItem "medium_battery" 3>>
<<addItem "duracell_battery" 1>>
<!-- Weapons -->
<<script>>window.addItemFromDatabase('pistol', 1);<</script>>
<<script>>window.addItemFromDatabase('rifle', 1);<</script>>
<<script>>window.addItemFromDatabase('shotgun', 1);<</script>>
<<script>>window.addItemFromDatabase('pistol_ammo', 24);<</script>>
<<script>>window.addItemFromDatabase('pistol_ammo_expansive', 12);<</script>>
<<script>>window.addItemFromDatabase('pistol_ammo_incendiary', 6);<</script>>
<<script>>window.addItemFromDatabase('revolver_ammo', 18);<</script>>
<!-- Rifle ammo -->
<<script>>window.addItemFromDatabase('rifle_ammo', 30);<</script>>
<<script>>window.addItemFromDatabase('rifle_ammo_armor', 15);<</script>>
<<script>>window.addItemFromDatabase('rifle_ammo_incendiary', 10);<</script>>
<!-- Shotgun ammo -->
<<script>>window.addItemFromDatabase('shotgun_shells', 12);<</script>>
<<script>>window.addItemFromDatabase('shotgun_slug', 8);<</script>>
<<script>>window.addItemFromDatabase('shotgun_incendiary', 6);<</script>>
<!-- Weapon upgrades -->
<<script>>window.addItemFromDatabase('scope', 1);<</script>>
<<script>>window.addItemFromDatabase('silencer', 1);<</script>>
<<script>>window.addItemFromDatabase('laser', 1);<</script>>
<<script>>window.addItemFromDatabase('flashlight', 1);<</script>>
<<script>>window.addItemFromDatabase('grip', 1);<</script>>
<<script>>window.addItemFromDatabase('stock', 1);<</script>>
<<script>>window.addItemFromDatabase('barrel', 1);<</script>>
<<script>>window.addItemFromDatabase('compensator', 1);<</script>>
remove
<<script>>
window.gameState.inventory.quickbar.fill(null);
window.InventorySystem.updateDisplay();
<</script>>
<<script>>
window.gameState.inventory.main.fill(null);
<</script>>
<<script>>
window.gameState.inventory.main[5] = null;
<</script>> <<script>>
window.addItemFromDatabase('pistol', 1);
if (window.ItemNotificationSystem) {
window.ItemNotificationSystem.show('pistol', 1, 'Found in desk drawer');
}
<</script>>
<<addMoney 500>>
<!-- Add $250 with custom message -->
<<addMoney 250 "Found in wallet">> <<script>>
window.startSimpleBattle('normalWolf', 100, 'VictoryPassage');
<</script>><<run startAdvancedBattle([
{
type: 'nightmareShade',
hp: 150,
distance: 250,
randomDistance: true,
minMovement: 15,
maxMovement: 45,
sanityDamage: 22,
DamageIgnore: {
'pistol': 0.7,
'rifle': 0.6,
'shotgun': 0.8,
'melee': 0.5,
'incendiary': 0.1,
'dragon_breath': 0.0,
'tracer': 0.2,
'9mm': 0.8,
'.45': 0.7,
'slugs': 0.9
}
},
{
type: 'nightmareShade',
hp: 120,
distance: 180,
randomDistance: true,
minMovement: 10,
maxMovement: 35,
sanityDamage: 18,
DamageIgnore: {
'pistol': 0.6,
'rifle': 0.5,
'shotgun': 0.7,
'melee': 0.4,
'incendiary': 0.0,
'piercing': 0.3,
'dragon_breath': 0.1
}
}
], 'VictoryPassage', false, 'fled_from_nightmare', true)>><<setAvatarDirect "casey2.png">>
<<if window.ClothingSystem.currentClothes === 'jacket'>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<elseif window.ClothingSystem.currentClothes === 'coat'>>
<<setAvatarDirect "caseycoatpistol.png">>
<<else>>
<<setAvatarDirect "caseypistol.png">>
<</if>><<script>>
setBackgroundMusic('outsidetheme.mp3');
<</script>>
Change music with fade:
<<script>>
setTimeout(() => {
audioSystemCrossfade('pianosonata.mp3', 4000);
}, 1000);
<</script>>
<<script>>
stopAllMusic();
stopAllAudio('music');
window.emergencyAudio.muteAll();
<</script>><<script>>
playSoundDirect('windowcrash.mp3');
<</script>>
<<createAdvancedEvent "LowHealthWarning" 20 "<" "passage" "HealthWarningPassage" true "health">>
Parameters:
- "LowHealthWarning" - Event name
- 20 - Health threshold value
- "<" - Health operator (triggers when health < 20)
- "passage" - Action type (navigate to passage)
- "HealthWarningPassage" - Target passage name
- true - Single launch (triggers only once)
- "health" - Event type (health-based event)
2) Health event when health and some variable there:
<<createAdvancedEvent "HealthAndVariable" 15 "<" "passage" "CombinedEventPassage" true "health" "SomeVariable"
1>>
Parameters:
- "HealthAndVariable" - Event name
- 15 - Health threshold value
- "<" - Health operator (triggers when health < 15)
- "passage" - Action type
- "CombinedEventPassage" - Target passage name
- true - Single launch
- "health" - Event type
- "SomeVariable" - Variable name to check
- 1 - Variable value required (SomeVariable must equal 1)
3) The same as second + location:
<<createAdvancedEvent "HealthVariableLocation" 15 "<" "passage" "LocationEventPassage" true "health"
"LocationVariable" 1>>
Parameters:
- "HealthVariableLocation" - Event name
- 15 - Health threshold value
- "<" - Health operator (triggers when health < 15)
- "passage" - Action type
- "LocationEventPassage" - Target passage name
- true - Single launch
- "health" - Event type
- "LocationVariable" - Location variable name to check
- 1 - Location variable value required (LocationVariable must equal 1)
4) Sanity below certain level and repeatable:
<<createAdvancedEvent "SanityStress" 30 "<" "passage" "SanityEventPassage" false "sanity">>
Parameters:
- "SanityStress" - Event name
- 30 - Sanity threshold value
- "<" - Sanity operator (triggers when sanity < 30)
- "passage" - Action type
- "SanityEventPassage" - Target passage name
- false - Repeatable (can trigger multiple times)
- "sanity" - Event type (sanity-based event)
5) Health and sanity at certain level with some variables (few):
<<createComplexEvent "CriticalState" 10 "<" 15 "<" "passage" "CriticalEventPassage" true "CriticalReady" 1
"LocationOK" 1 "PlayerAwake" 1>>
Parameters:
- "CriticalState" - Event name
- 10 - Health threshold value
- "<" - Health operator (triggers when health < 10)
- 15 - Sanity threshold value
- "<" - Sanity operator (triggers when sanity < 15)
- "passage" - Action type
- "CriticalEventPassage" - Target passage name
- true - Single launch
- "CriticalReady" - First variable name to check
- 1 - First variable value required (CriticalReady must equal 1)
- "LocationOK" - Second variable name to check
- 1 - Second variable value required (LocationOK must equal 1)
- "PlayerAwake" - Third variable name to check
- 1 - Third variable value required (PlayerAwake must equal 1) Get lockpicks
<<script>>
window.giveLockpicks(5)
<</script>>
<<script>>
window.testLockpicking(5);
<</script>><div id="intro-overlay">
<div id="intro-message">Rustlerman Games</div>
</div>
<div class="titles">
<div class="title"></div>
<div id="title1"></div>
</div>
<div class="main-menu">
<div class="main-menu-btn" id="save-button">CONTINUE</div>
<div class="main-menu-btn" id="new-game-button">NEW STORY</div>
<div class="main-menu-btn" id="credits-button">CREDITS</div>
</div>
<!-- Control Buttons -->
<div class="control-buttons">
<div class="control-btn" id="menu-fullscreen-btn" title="Toggle Fullscreen">⛶</div>
<div class="control-btn" id="menu-audio-btn" title="Audio Controls">🔊</div>
</div>
<!-- Credits Popup -->
<div id="credits-popup" style="display: none;">
<div id="credits-content">
<div id="credits-title">CREDITS</div>
<div id="credits-names">
<div class="credit-entry">
<div class="credit-role">Game Designer, Screenwriter, Creator</div>
<div class="credit-name">Rustlerman</div>
</div>
<div class="credit-entry">
<div class="credit-role">Programmer</div>
<div class="credit-name">Korum</div>
</div>
</div>
<div id="credits-close" class="main-menu-btn">CLOSE</div>
</div>
</div>
<<script>>
setBackgroundMusic('soundtrack1.mp3');
<</script>>
<<timed 1s>>
<<script>>
const slideshowContainer = document.createElement('div');
slideshowContainer.id = 'menu-slideshow-bg';
slideshowContainer.style.cssText = `
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: -1;
`;
document.body.appendChild(slideshowContainer);
const myThreePics = [
'img/backgrounds/intromenu.png',
'img/backgrounds/parking.png',
'img/backgrounds/lake.png',
'img/backgrounds/intromenu2.png',
'img/backgrounds/intromenu3.png',
'img/backgrounds/intromenu4.png',
'img/backgrounds/intromenu5.png',
];
if (window.SlideshowSystem) {
window.SlideshowSystem.stop('my-slideshow');
}
window.SlideshowSystem.create('my-slideshow', myThreePics, {
interval: 10000,
loop: true,
fadeTransition: true,
fadeDuration: 1200,
autoStart: true,
target: '#menu-slideshow-bg'
});
<</script>>
<</timed>>
<<set $startgame = true>>
<<script>>
$(document).ready(function() {
$('#save-button').on('click', function() {
try {
UI.saves();
} catch (error) {
console.error("Save functionality error:", error);
alert("Save function could not be executed.");
}
});
$('#new-game-button').on('click', function() {
Engine.play('introA');
});
$('#credits-button').on('click', function() {
$('#credits-popup').fadeIn(300);
});
$('#credits-close').on('click', function() {
$('#credits-popup').fadeOut(300);
});
// Close popup when clicking outside
$('#credits-popup').on('click', function(e) {
if (e.target === this) {
$('#credits-popup').fadeOut(300);
}
});
// Fullscreen control with different ID to avoid conflicts
$('#menu-fullscreen-btn').on('click', function(e) {
e.preventDefault();
e.stopPropagation();
console.log('Menu fullscreen button clicked'); // Debug
try {
if (document.fullscreenElement) {
console.log('Exiting fullscreen'); // Debug
document.exitFullscreen();
} else {
console.log('Entering fullscreen'); // Debug
document.documentElement.requestFullscreen();
}
} catch (error) {
console.error('Fullscreen error:', error);
}
});
// Audio control with different ID to avoid conflicts
$('#menu-audio-btn').on('click', function(e) {
e.preventDefault();
e.stopPropagation();
console.log('Menu audio button clicked'); // Debug
if (window.AudioSettingsSystem && typeof window.AudioSettingsSystem.openAudioSettings === 'function')
{
console.log('Calling AudioSettingsSystem.openAudioSettings'); // Debug
window.AudioSettingsSystem.openAudioSettings();
} else if (window.openAudioSettings && typeof window.openAudioSettings === 'function') {
console.log('Calling window.openAudioSettings'); // Debug
window.openAudioSettings();
} else {
console.log('No audio settings system found, using fallback'); // Debug
// Fallback if AudioSettingsSystem not available
if (window.audioEnabled !== false) {
window.audioEnabled = false;
if (window.backgroundMusic) {
window.backgroundMusic.volume = 0;
}
$(this).text('🔇');
$(this).attr('title', 'Enable Audio');
} else {
window.audioEnabled = true;
if (window.backgroundMusic) {
window.backgroundMusic.volume = window.musicVolume || 0.5;
}
$(this).text('🔊');
$(this).attr('title', 'Disable Audio');
}
}
});
// Update fullscreen button icon on fullscreen change
$(document).on('fullscreenchange', function() {
console.log('Fullscreen state changed:', document.fullscreenElement ? 'ON' : 'OFF'); // Debug
// Icon stays the same (⛶) regardless of fullscreen state
});
});
<</script>>
<style>
#intro-overlay {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
background-color: black;
display: flex;
justify-content: center;
align-items: center;
z-index: 9999;
opacity: 1;
animation: fadeOut 1s ease forwards;
animation-delay: 4.35s;
}
#intro-message {
font-family: 'Times New Roman', serif;
color: #e5e5e5;
font-weight: bold;
font-size: 4vw;
text-align: center;
letter-spacing: 0.08em;
text-shadow:
0 0 8px rgba(255, 255, 255, 0.3),
2px 2px 6px rgba(0, 0, 0, 0.9),
-2px -2px 6px rgba(0, 0, 0, 0.9);
opacity: 0;
animation:
fadeZoomIn 1s ease forwards 0.3s,
fadeOutText 1s ease forwards 3.9s;
transform: translate(0px, 20px);
}
/* Control Buttons */
.control-buttons {
position: fixed;
top: 0px;
left: 15px;
display: flex;
flex-direction: column;
gap: 1px;
z-index: 99999;
}
.control-btn {
width: 25px;
height: 25px;
background: rgba(20, 20, 20, 0.8);
border: 2px solid #d9c27e;
border-radius: 8px;
display: flex;
justify-content: center;
align-items: center;
font-size: 12px;
color: #d9c27e;
cursor: pointer;
transition: all 0.3s ease;
user-select: none;
box-shadow: 0 0 10px rgba(217, 194, 126, 0.2);
}
.control-btn:hover {
background: rgba(40, 40, 40, 0.9);
box-shadow: 0 0 15px rgba(217, 194, 126, 0.4);
transform: scale(1.05);
}
.control-btn:active {
transform: scale(0.95);
}
/* Credits Popup */
#credits-popup {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
background-color: rgba(0, 0, 0, 0.8);
display: flex;
justify-content: center;
align-items: center;
z-index: 10000;
}
#credits-content {
background: linear-gradient(135deg, rgba(20, 20, 20, 0.95), rgba(40, 40, 40, 0.95));
border: 2px solid #d9c27e;
border-radius: 10px;
padding: 1.2rem 1rem;
text-align: center;
box-shadow: 0 0 30px rgba(217, 194, 126, 0.3);
max-height: 90vh;
max-width: 400px;
width: 85%;
display: flex;
flex-direction: column;
justify-content: center;
overflow-y: auto;
}
#credits-title {
font-family: 'personal-services', 'Arial', sans-serif;
font-size: clamp(1.6rem, 4vw, 2.2rem);
color: #d9c27e;
font-weight: 900;
margin-bottom: 0.6rem;
text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8);
letter-spacing: 0.1em;
}
#credits-names {
margin: 0.6rem 0;
flex-grow: 1;
display: flex;
flex-direction: column;
justify-content: center;
}
.credit-entry {
margin: 0;
}
.credit-role {
font-family: 'personal-services', 'Arial', sans-serif;
font-size: clamp(0.85rem, 2vw, 1.1rem);
color: #B8A876;
font-weight: 400;
margin-bottom: 0.05rem;
text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.8);
letter-spacing: 0.03em;
font-style: italic;
}
.credit-name {
font-family: 'personal-services', 'Arial', sans-serif;
font-size: clamp(1.1rem, 2.8vw, 1.6rem);
color: #E6D3A3;
font-weight: 700;
margin: 0.1rem 0 0.4rem 0;
text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8);
letter-spacing: 0.05em;
}
#credits-close {
margin-top: 0.8rem !important;
cursor: pointer;
font-size: clamp(1.4rem, 3.5vw, 1.8rem) !important;
flex-shrink: 0;
}
/* Animations */
@keyframes fadeZoomIn {
0% { opacity: 0; transform: scale(1.2); filter: blur(4px); }
100% { opacity: 1; transform: scale(1); filter: blur(0px); }
}
@keyframes fadeOutText {
to { opacity: 0; }
}
@keyframes fadeOut {
to { opacity: 0; visibility: hidden; }
}
@font-face {
font-family: 'personal-services';
src: url('path/to/personal-services.woff2') format('woff2'),
url('path/to/personal-services.woff') format('woff');
font-weight: normal;
font-style: normal;
}
#ui-bar, #character-menu, .stat-row, #name {
display: none;
}
#story {
display: flex;
flex-direction: column;
justify-content: flex-start;
align-items: center;
min-height: 100vh;
margin: 0 !important;
padding: 0 !important;
box-sizing: border-box;
}
.titles {
position: absolute;
top: -4vh;
left: 50%;
transform: translateX(-50%);
z-index: 1;
}
.title {
background-image: url(img/title.png);
background-size: contain;
background-repeat: no-repeat;
background-position: center;
width: 100vw;
max-width: 50rem;
height: 35vh;
margin: 0 auto !important;
padding: 0 !important;
z-index: 1;
}
#title1 {
background-image: url(img/title1.png);
background-size: contain;
background-repeat: no-repeat;
background-position: center;
width: 50vw;
max-width: 25rem;
height: 7vh;
margin: 0 auto !important;
padding: 0 !important;
animation: subwoofer-pump 2s cubic-bezier(0.455, 0.03, 0.515, 0.955) infinite;
transform-origin: center center;
z-index: 1;
position: relative;
top: -8vh;
left: 8px;
}
@keyframes subwoofer-pump {
0% { transform: scale(1); }
20% { transform: scale(1.05); }
40% { transform: scale(0.98); }
60% { transform: scale(1.03); }
80% { transform: scale(0.99); }
100% { transform: scale(1); }
}
.main-menu {
position: absolute;
left: 3vw;
bottom: -3vh;
display: flex;
flex-direction: column;
gap: 0vh;
margin: 0px 0 !important;
z-index: 1000;
}
#save-button {
top: 5px;
}
#save-button, #new-game-button, #credits-button, .main-menu-btn {
display: block !important;
font-family: 'personal-services', 'Arial', sans-serif !important;
font-size: clamp(2.2rem, 3vw, 1.8rem) !important;
font-weight: 900 !important;
color: #d9c27e !important;
cursor: pointer !important;
padding: 0.2rem 0.5rem !important;
letter-spacing: 0.1em !important;
user-select: none !important;
text-decoration: none !important;
background: none !important;
background-color: transparent !important;
background-image: none !important;
border: none !important;
border-radius: 0 !important;
box-shadow: none !important;
outline: none !important;
text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8) !important;
transition: all 0.3s ease !important;
}
#save-button:hover, #new-game-button:hover, #credits-button:hover, .main-menu-btn:hover {
color: #E6D3A3 !important;
text-decoration: none !important;
background: none !important;
background-color: transparent !important;
background-image: none !important;
border: none !important;
border-radius: 0 !important;
box-shadow: none !important;
outline: none !important;
}
#save-button:active, #new-game-button:active, #credits-button:active, .main-menu-btn:active {
background: none !important;
background-color: transparent !important;
border: none !important;
}
#save-button:focus, #new-game-button:focus, #credits-button:focus, .main-menu-btn:focus {
background: none !important;
background-color: transparent !important;
border: none !important;
outline: none !important;
}
@media screen and (max-width: 768px) {
.title {
height: 14vh;
width: 100vw;
}
#title1 {
height: 3vh;
width: 20vw;
top: 4vh;
left: 1vw;
}
.main-menu {
bottom: -2vh;
left: 1vw;
font-size: 1.5vw;
}
#save-button, #new-game-button, #credits-button, .main-menu-btn {
font-size: 1.5rem !important;
letter-spacing: 0.03em !important;
padding: 0.1rem 0.3rem !important;
}
#credits-content {
padding: 1rem 0.8rem;
max-width: 350px;
width: 90%;
}
.control-btn {
width: 22px;
height: 22px;
font-size: 10px;
}
.control-buttons {
top: -18px;
left: 9px;
gap: 0px;
}
}
@media screen and (max-width: 480px) {
.titles {
top: 2vh;
}
.title {
height: 45vh;
width: 294vw;
}
#title1 {
height: 6vh;
width: 110vw;
top: -0.5vh;
}
.main-menu {
bottom: -7vh;
left: -1vw;
font-size: 1.5vw;
}
#save-button, #new-game-button, #credits-button, .main-menu-btn {
font-size: 1.1rem !important;
letter-spacing: 0.005em !important;
padding: 0.03rem 0.12rem !important;
}
#credits-content {
padding: 0.8rem 0.6rem;
max-width: 300px;
width: 95%;
max-height: 85vh;
}
.control-btn {
width: 20px;
height: 20px;
font-size: 9px;
}
.control-buttons {
top: -20px;
left: 10px;
gap: 0px;
}
#credits-title {
font-size: clamp(1.4rem, 5vw, 1.8rem);
margin-bottom: 0.4rem;
}
.credit-role {
font-size: clamp(0.75rem, 2.5vw, 0.95rem);
}
.credit-name {
font-size: clamp(1rem, 3.2vw, 1.3rem);
margin: 0.05rem 0 0.3rem 0;
}
#credits-close {
font-size: clamp(1.2rem, 4vw, 1.5rem) !important;
margin-top: 0.6rem !important;
}
}
/* Portrait orientation (vertical) specific styles */
@media screen and (max-height: 800px) and (orientation: portrait) {
.main-menu {
bottom: 2vh;
}
#save-button, #new-game-button, #credits-button, .main-menu-btn {
font-size: 1rem !important;
letter-spacing: 0.02em !important;
padding: 0.08rem 0.25rem !important;
}
}
@media screen and (max-height: 650px) and (orientation: portrait) {
.main-menu {
bottom: -7vh;
left: -1vw;
font-size: 1.5vw;
}
#save-button, #new-game-button, #credits-button, .main-menu-btn {
font-size: 0.9rem !important;
letter-spacing: 0.02em !important;
padding: 0.06rem 0.2rem !important;
}
.titles {
top: 1vh;
}
.title {
height: 12vh;
}
#title1 {
height: 2.5vh;
top: -0.3vh;
}
}
/* Small portrait screens (most phones) */
@media screen and (max-height: 700px) and (max-width: 500px) and (orientation: portrait) {
#save-button, #new-game-button, #credits-button, .main-menu-btn {
font-size: 1.2rem !important;
letter-spacing: 0.01em !important;
padding: 0.05rem 0.2rem !important;
}
}
/* Landscape orientation on mobile devices */
@media screen and (max-height: 500px) and (orientation: landscape) {
.main-menu {
bottom: -6vh;
left: -1vw;
font-size: 1.5vw;
}
#save-button, #new-game-button, #credits-button, .main-menu-btn {
font-size: 1.2rem !important;
letter-spacing: 0.01em !important;
padding: 0.1rem 0.15rem !important;
top: 7px;
}
.titles {
top: 4.5vh;
}
.title {
height: 12vh;
}
#title1 {
height: 2vh;
top: -0.2vh;
}
.control-btn {
width: 18px;
height: 18px;
font-size: 8px;
}
.control-buttons {
top: -15px;
left: 8px;
gap: 0px;
}
}
@media screen and (max-height: 400px) and (orientation: landscape) {
#save-button, #new-game-button, #credits-button, .main-menu-btn {
font-size: 1rem !important;
letter-spacing: 0.005em !important;
padding: 0.03rem 0.12rem !important;
}
.main-menu {
bottom: -7vh;
left: -3vw;
font-size: 1.5vw;
}
}
/* Very small landscape screens */
@media screen and (max-height: 350px) and (orientation: landscape) {
#save-button, #new-game-button, #credits-button, .main-menu-btn {
font-size: 0.7rem !important;
padding: 0.02rem 0.1rem !important;
}
}
@media screen and (min-width: 1200px) {
.main-menu {
bottom: -1vh;
left: 5vw;
font-size: 1.5vw;
}
}
@media (orientation: landscape) and (max-height: 600px) {
html body #title1, body #title1, #title1 {
transform: scale(3.375) !important;
transform-origin: center !important;
overflow: visible !important;
z-index: 10 !important;
}
}
</style>
<<script>>
window.setLighting(100);
<</script>> <<script>>
// Remove slideshow container
const slideshowContainer = document.getElementById('menu-slideshow-bg');
if (slideshowContainer) {
slideshowContainer.remove();
console.log('🗑 Removed slideshow container');
}
// Stop slideshow
if (window.SlideshowSystem) {
window.SlideshowSystem.stop('my-slideshow');
}
<</script>>
<<enableMenu>>
<<dialogue "" "Two weeks. Fourteen full days since they told you, with that tense and professional smile, to "take a break." It wasn’t a suggestion, of course. It was an order. Everyone knew it, including you. A polite way to push you out of the way while they decided what to do with you. And now you're here, back, but not because things have improved. More like this is just the prelude to the inevitable." "description">>
<<addDialogue "" "The sky is darker than it should be at this time of day, as if even it knows that a chapter is about to close. You take a deep breath, as if that could ease the weight you carry." "description">>
<<addDialogue "" "It doesn’t matter how many nice words they use, it doesn’t matter how much they try to sugarcoat it, I know I’m done. And the worst part is, I can't even blame them. I'm alone." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Enter in the police station|introB]]">>
<<horizontalEnd>>
<<hideMenuElement "inventory-btn">>
<<toggleMenuElement "lantern-row">>
<<unlockCharacterOnly 1>>
<<script>>
let questId = addQuestWithStages(
"The captain",
"Captain Havook wants to see you in his office right away. From the tense tone of his call and the urgency with which he summoned you, it seems there's something important to discuss.",
[
"Talk to Captain Havok.",
],
"📋",
"main",
"captain_quest", // Custom ID
"img/quest.png" // Quest image
);
// Add stage images so completion notifications show the quest image
if (window.questSystem && window.questSystem.quests["captain_quest"]) {
window.questSystem.quests["captain_quest"].stageImages = [
"img/quest.png", // Stage 1
];
}
State.variables.captainQuestId = "captain_quest";
<</script>>
<<hideMenuElement "shop-btn">>
<<script>>
window.HealthSanitySystem.addSanity(20)
<</script>>
<<script>>
window.HealthSanitySystem.addHealth(100)
<</script>>
<<script>>
stopAllMusic();
<</script>>
<<timed 0.5s>>
<<script>>
setTimeout(() => {
audioSystemCrossfade('pianosonata.mp3', 500);
}, 50);
<</script>>
<</timed>>
<<set $StartGame = true>>
<<dialogue "" "You step in the police station, and the weight of your coworkers’ stares presses into your back. You don’t need to see them to know what they’re thinking—you’ve heard the whispers, the muffled laughter, the words no one dares to say to your face." "description">>
<<addDialogue "" "You walk down the hallway, the echo of your footsteps sounding louder than it should. Rodríguez, your former partner, she is sitting at what you assume is her provisional desk." "description">>
<<addDialogue "" "Once, she’d have greeted you with a smile or a sharp joke only the two of you would get. Now, her eyes are cold, the camaraderie you once shared is now broken, and the silence between you weighs heavier than any word of reproach." "description">>
<<addDialogue "" "The captain told me to go to his office as soon as I arrived." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Talk to Rodriguez|rt]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Go through the corridor|ci]]" "center">>
<<script>>
addQuestWithStages(
"Rodriguez (Optional)",
"You ran into Gabriela Rodríguez at the station entrance. The tension from your last case still hangs between you—perhaps it's time to clear the air and salvage your friendship.",
[
" Talk to Gabriela Rodríguez. "
],
"📋",
"side",
"rodriguez", // Custom ID
"img/quest.png" // Quest image
);
// Add stage images so completion notifications show the quest image
if (window.questSystem && window.questSystem.quests["captain_quest"]) {
window.questSystem.quests["captain_quest"].stageImages = [
"img/quest.png", // Stage 1
];
}
State.variables.captainQuestId = "rodriguez";
<</script>><<dialogue "" "You approach Rodríguez; she tries not to look at you until your presence is too close to ignore. Then, she shoots you a look of disappointment that instantly shifts to indifference." "description">>
<<if $introC is true>>
<<addDialogue "Gabriela Rodriguez" "Casey, when I saw you enter, I thought you weren't going to talk to me..." "talk">>
<<addDialogue "Casey" "Gabi, I..." "talk">>
<<else>>
<<addDialogue "Gabriela Rodriguez" "Casey..." "talk">>
<<addDialogue "Casey" "Gabi, I..." "talk">>
<</if>>
<<addDialogue "Gabriela Rodriguez" "Don't say another word, Casey. I warned you. I told you what would happen if you kept going down this path, and you didn’t listen to me." "talk">>
<<addDialogue "" "Your face shows the pain of the truth as you hear the words of your former partner." "description">>
<<addDialogue "Casey" "I.. I'm sorry." "talk">>
<<addDialogue "" "Rodríguez looks you straight in the eyes, then grimaces, revealing her sadness." "description">>
<<addDialogue "Gabriela Rodriguez" "I know, but unfortunately, that’s not going to change anything. I tried talking to Henry, but it wasn't enough..." "talk">>
<<addDialogue "" "I'm sure she talked to Henry..." "thoughts">>
<<addDialogue "Casey" "I'm sure you did... Even so, though I know you're disappointed and angry with me, I couldn’t leave without saying goodbye." "talk">>
<<addDialogue "" "Rodríguez looks at you once more. Her expression shifts once again, first to anger and then to sorrow again." "description">>
<<addDialogue "Gabriela Rodriguez" "Goodbye, Casey. I hope you can rebuild your life. I truly hope you can. Just go back to who you were before... Never give up." "talk">>
<<addDialogue "" "I don't want to lose you..." "thoughts">>
<<addDialogue "Casey" "And I hope we can still be friends. I need you in my life. We've been through so much together. To me, you're my family, Gabi." "talk">>
<<addDialogue "" "Rodríguez, still hurt, looks into your eyes one last time. Then, she gives a small nod but says nothing. She’s nod carries a faint glimmer of acknowledgment, as if to say. Maybe someday... It seems there’s nothing more to say. It’s time to move on to the captain’s office." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Keep moving forward|km]]">>
<<horizontalEnd>>
<<showNPC "rodriguez" "img/characters/rodriguez/rodriguez.png" "Gabriela Rodriguez">>
<<set $Rodriguezintro = true>>
<<setAvatarDirect "sad.png">>
<<script>>
completeQuestStage("rodriguez");
<</script>>
<<unlockPhoto 1 2>>
<<unlockCharacterOnly 3>><<if $Rodriguezintro isnot true>>
<<dialogue "" "I don't want to talk to her right now." "thoughts">>
<<addDialogue "" "You pretend not to notice and keep moving, Rodríguez gives you one last sorrowful look as you walk away, her own eyes reflecting a shared pain, as though she, too, carries the burden of this inevitable goodbye." "description">>
<<addDialogue "" "The place feels colder, emptier, like you brought a storm with you and everyone is doing their best to stay out of its path. At the end of the hall, the Captain’s office looms, silent and unyielding. Every step toward it feels heavier than the last, but stopping isn’t an option." "description">>
<<else>>
<<dialogue "" "The place feels colder, emptier, like you brought a storm with you and everyone is doing their best to stay out of its path. At the end of the hall, the Captain’s office looms, silent and unyielding. Every step toward it feels heavier than the last, but stopping isn’t an option." "description">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Continue through the hallway|ci1]]">>
<<horizontalEnd>><<dialogue "" "At the end of the hallway stands the captain’s office, directly ahead. Halfway down, you recognize your old office—its nameplate still there. Nearby, a third door leads straight to the shooting range." "description">>
<<if $bag is true>>
<<horizontalStart>>
<<addDialogue "" "[[Shooting range]]">>
<<addDialogue "" "[[Captain's office|preintro]]">>
<<addDialogue "" "[[Your old office|io]]">>
<<addDialogue "" "[[Go to the entrance|introC]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Your old office|io]]">>
<<addDialogue "" "[[Go to the entrance|introC]]">>
<<horizontalEnd>>
<</if>>
<<if $youroldofficequest isnot true>>
<<script>>
addQuestWithStages(
"Backpack",
"You forgot your backpack in your old office at the station. Head inside and retrieve it before you can move forward with anything else.",
[
"Retrive your backpack. "
],
"📋",
"main",
"backpack_quest", // Custom ID
"img/quest.png" // Quest image - use any image path you have
);
State.variables.captainQuestId = "backpack_quest";
<</script>>
<<set $youroldofficequest = true>>
<</if>><<dialogue "" "You have arrived at your destination. At the end of the hallway stands the captain’s office, directly ahead. Halfway down, you recognize your old office—its nameplate still there. Nearby, a third door leads straight to the shooting range. Captain Henry Havook has summoned you, and it’s certainly not for something good." "description">>
<<addDialogue "Casey" "Well, here I am. This is probably the last time... I could check my old office before..." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Enter in the office|io]]">>
<<addDialogue "" "[[Go to Station's entrance|introC]]">>
<<horizontalEnd>>
<<set $Ic = true>>
<<if $youroldofficequest isnot true>>
<<script>>
addQuestWithStages(
"Backpack",
"You forgot your backpack in your old office at the station. Head inside and retrieve it before you can move forward with anything else.",
[
"Retrive your backpack. "
],
"📋",
"main",
"backpack_quest", // Custom ID
"img/quest.png" // Quest image - use any image path you have
);
State.variables.captainQuestId = "backpack_quest";
<</script>>
<<set $youroldofficequest = true>>
<</if>>
<<set $showWall to true>>
<<dialogue "" "The air smells of stale coffee and aged paper, a scent you’ve come to associate with long nights of work and endless cases." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Wall|wi]]">>
<<addDialogue "" "[[Desk|di]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Hallway|ci2]]" "center">><<if $Rodriguezintro isnot true>>
<<dialogue "" "As you leave the hallway and return to the precinct lobby, the door opens again, and the hustle of the place immediately surrounds you. Your gaze stops on Gabriela, who is still at her temporary desk, studying some photos and notes." "description">>
<<addDialogue "" "Maybe I should talk to her; I don’t like leaving things like this." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Talk to Rodriguez|rt]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Go through the corridor|ci2]]" "center">>
<<else>>
<<dialogue "" "As you leave the hallway and return to the precinct lobby, the door opens again, and the hustle of the place immediately surrounds you. Your gaze stops on Gabriela, who is still at her temporary desk, studying some photos and notes." "description">>
<<addDialogue "" "I've already talked to Gabi, I don't think she wants to hear from me again." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Go through the corridor|ci2]]">>
<<horizontalEnd>>
<</if>>
<<set $introC = true>>
<<switch visited()>>
<<case 1>>
<<dialogue "" "As you enter the shooting range, the few agents present glance at you. Without a word, they quickly gather their things and leave in silence, avoiding your gaze. The echo of their hurried footsteps fades, leaving only the faint hum of the fluorescent lights. The scent of old gunpowder and cold metal lingers in the air, both familiar and distant at the same time." "description">>
<<addDialogue "" "You stand still for a moment, observing the empty booths and the targets riddled with dozens of bullet holes from the past." "description">>
<<addDialogue "" "I could shoot a little before finishing all of this." "thoughts">>
<<default>>
<<dialogue "" "The room is completely empty of people, silent, with no one in sight. There’s nobody around." "description">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Training shoot|TrainingShoot]]">>
<<addDialogue "" "[[Take ammo|introammo]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Exit|ci2]]" "center">>
<<set $practique = 1>>
<<dialogue "" "You step quickly into the office, and Captain Havook fixes his gaze on you with a serious expression. When his eyes meet yours, he lets out a weary sigh. Sensing the tension in the room, you decide to break the silence." "description">>
<<addDialogue "Casey" "Captain..." "talk">>
<<addDialogue "Captain Havok" "Please, have a seat, Casey." "talk">>
<<addDialogue "" "The captain gestures for you to sit, pointing to the empty chair in front of his desk." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Sit in front of the captain|preintro1]]">>
<<horizontalEnd>>
<<set $practique = 0>>
<<showNPC "Captain" "img/characters/henry/captain.png" "Captain Henry Havok">>
<<script>>
completeQuestStage("captain_quest");
<</script>>
<<if $Rodriguezintro isnot true>>
<<script>>
completeQuestStage("rodriguez");
<</script>>
<</if>>
<<unlockCharacterOnly 5>>
<<if $Rodriguezintro isnot true>>
<<unlockCharacterOnly 3>>
<</if>><<switch visited()>>
<<case 1>>
<<dialogue "" ">As you look at the wall, your eyes settle on an old board with remnants of notes and photos connected by frayed threads. It’s the last case you solved with Gabriela. The victim’s picture is still there, next to a date marked in red. It didn’t end well. A young woman lost her life before you could stop the killer, Daniel R. Harrington, and Gabriela had to Shoot him to save others victims." "description">>
<<addDialogue "" "I tried to negotiate, but I messed up. I couldn’t keep my cool… or maybe… I didn’t want to." "thoughts">>
<<default>>
<<dialogue "" "The last case you solved with Gabriela Rodriguez stills in the wall. The victim’s picture is still there, next to a date marked in red. It didn’t end well. A young woman lost her life before you could stop the killer, and Gabriela had to Shoot him to save others." "description">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Back|io]]">>
<<horizontalEnd>>
<<dialogue "" "You look at the desk again, but now it feels emptier, more distant. The papers are still there, scattered, but they no longer carry the same weight. Without your bag leaning against the leg, the place feels even more abandoned, as if the trace of your presence is slowly fading away. It’s strange how something so small can make everything feel so different." "description">>
<<addImage "img/events/desk1.png">>
<<horizontalStart>>
<<addDialogue "" "[[Computer|introsave]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Back|io]]">>
<<horizontalEnd>><<if $bag is true>>
<<goto "di2">>
<<else>>
<<dialogue "" "As you look at the desk, you notice a pile of scattered papers, incomplete reports, and faded sticky notes. Among them, you recognize some documents from the last case, still unfiled, as if no one had dared to touch them since. The ink of the key words still stands out: homicide, failed rescue, Rodríguez. Then, your eyes land on something familiar, your bag." "description">>
<<addDialogue "Casey" "My bag... With all the commotion from the last case, I left it here." "talk">>
<<addImage "img/events/mochila.png">>
<<horizontalStart>>
<<addDialogue "" "[[Take your bag|di1]]">>
<<horizontalEnd>>
<<script>>
completeQuestStage("Old office");
<</script>>
<</if>> <<dialogue "" "The computer is on." "description">>
<<addImage "img/events/desk1.png">>
<<horizontalStart>>
<<addDialogue "" "<div class='main-menu-btn' id='save-button'>Save/Load</div>">>
<<horizontalEnd>>
<<addDialoguePos "" "[[Go back|io]]" "center">>
<<script>>
// Ensure SugarCube save functionality
$(document).ready(function() {
// Direct save method for SugarCube
$('#save-button').on('click', function() {
// Explicitly use SugarCube's save method
try {
// Open saves dialog
UI.saves();
} catch (error) {
// Fallback error handling
console.error("Save functionality error:", error);
alert("Save function could not be executed.");
}
});
});
<</script>>
<<if $intro is true || $StartGame is true>>
<<script>>
setBackgroundMusic('pianosonata.mp3');
<</script>>
<<set $intro = false>>
<</if>><<dialogue "" "You look at the desk again, but now it feels emptier, more distant. The papers are still there, scattered, but they no longer carry the same weight. Without your bag leaning against the leg, the place feels even more abandoned, as if the trace of your presence is slowly fading away. It’s strange how something so small can make everything feel so different." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|io]]">>
<<horizontalEnd>>
<<showMenuElement "inventory-btn">>
<<script>>
window.addItemFromDatabase('pistol', 1);
<</script>>
<<script>>
window.addItemFromDatabase('pistol_ammo', 30);
<</script>>
<<set $bag = true>>
<<set $youroldofficequest = true>>
<<script>>
completeQuestStage("backpack_quest");
<</script>>
<<run startAdvancedBattle([
{
type: 'practiceTarget',
hp: 120,
distance: 50,
randomDistance: true,
speed: "0",
minMovement: 0,
maxMovement: 0,
damage: 0,
DamageIgnore: {
'pistol': 0.0,
'rifle': 0.0,
'shotgun': 0.0,
'melee': 0.0,
'incendiary': 0.0,
'dragon_breath': 0.0,
'tracer': 0.0,
'9mm': 0.0,
'.45': 0.0,
'slugs': 0.0
}
},
], 'VictoryPassage', true, 'CombatEscape', true)>>
<<if $FightTutorial isnot true>>
<<set $FightTutorial = true>>
<div id="combatTutorialModal" class="modal">
<div class="modal-content">
<span class="close-button" onclick="document.getElementById('combatTutorialModal').style.display='none'">×</span>
<h2>Combat Tutorial with Firearms and Melee Weapons</h2>
<p><strong>Goal:</strong> Defeat all enemies without dying.</p>
<div class="modal-section">
<div class="modal-column">
<strong>Controls:</strong>
<ul>
<li><strong>Firearms:</strong>
<ul>
<li>Equip a firearm (such as a pistol, shotgun, or rifle) and the corresponding ammunition to shoot.</li>
<li>Press the "Shoot" button. If facing multiple enemies at once, press the "Shoot" button and then select the enemy card you want to attack.</li>
</ul>
</li>
<li><strong>Melee Attacks and Weapons: (Next Update)</strong>
<ul>
<li>If you have no weapons, you can perform melee attacks by waiting for the enemy to get close enough. These attacks deal less damage, but you can equip melee weapons to improve them.</li>
<li>Equip a melee weapon (such as a knife, bat, or machete) to perform close-range attacks when enemies are close enough.</li>
<li><strong>Note:</strong> Equipping a melee weapon will automatically unequip any equipped firearm, and vice versa.</li>
<li>Damage varies depending on the melee weapon used.</li>
</ul>
</li>
</ul>
</div>
<div class="modal-column">
<strong>Additional Tips:</strong>
<ul>
<li>Different types of ammunition can deal extra damage with firearms.</li>
<li>You can find weapon modifications that increase damage or accuracy.</li>
<li>Different rooms and hallways have various types of lighting, which affect your accuracy. Use the flashlight (when you have the flashlight) in dark places to gain an accuracy bonus.</li>
</ul>
</div>
</div>
<div style="text-align: center; margin-top: 20px;">
<button id="continueButton" class="continue-button">Continue</button>
</div>
</div>
</div>
<<script>>
$(document).ready(function () {
$("#combatTutorialModal").css("display", "flex");
$(document).off("click", "#continueButton, .close-button").on("click", "#continueButton, .close-button", function () {
$("#combatTutorialModal").css("display", "none");
});
});
<</script>>
<<timed 300ms>>
<<script>>
playSoundDirect('button.mp3');
<</script>>
<</timed>>
<</if>>
<style>
p {
text-align: center;
color: #e9e9e9;
}
b, strong {
font-weight: 700;
color: #d3bd7b;
}
.modal {
position: fixed;
z-index: 99999999;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgba(0, 0, 0, 0.8);
display: flex;
justify-content: center;
align-items: center;
margin: 0;
padding: 0;
}
.modal-content {
background: rgba(20, 20, 20, 0.9);
border: 3px solid #634d23;
border-radius: 5px;
padding: 20px;
max-width: 600px;
max-height: 80vh;
overflow-y: auto;
color: #d9c27e;
font-family: 'Trajan Pro', 'Times New Roman', serif;
}
.modal-content h2 {
text-align: center;
color: #ffcc00;
position: relative;
top: -2em;
margin-bottom: -2em;
}
.close-button {
color: #ffcc00;
float: right;
font-size: 28px;
font-weight: bold;
cursor: pointer;
position: relative;
top: -1.7em;
}
.modal-section {
display: flex;
flex-wrap: wrap;
}
.modal-column {
flex: 1;
min-width: 290px;
padding: 38px;
margin-bottom: -5em;
margin-top: -3em;
color: #e9e9e9;
}
.modal-content ul {
list-style-type: disc;
padding-left: 20px;
line-height: 1.6;
}
.continue-button {
padding: 10px 20px;
background-color: #3e3423;
color: #d9c27e;
border: 1px solid #634d23;
border-radius: 3px;
cursor: pointer;
font-family: 'Trajan Pro', 'Times New Roman', serif;
font-size: 16px;
transition: all 0.2s;
text-shadow: 1px 1px 1px #000;
}
.continue-button:hover {
background-color: #3e3423;
}
</style>
<<if window.ClothingSystem.currentClothes === 'jacket'>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<elseif window.ClothingSystem.currentClothes === 'coat'>>
<<setAvatarDirect "caseycoatpistol.png">>
<<else>>
<<setAvatarDirect "caseycoatpistol.png">>
<</if>><<addDialogue "" "You approach the pile of ammunition stacked in the corner of the room. Without hesitation, you grab a magazine loaded with 9mm bullets, thirty rounds." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Shooting range]]">>
<<horizontalEnd>>
<<script>>window.addItemFromDatabase('pistol_ammo', 120);<</script>><<dialogue "" "You sit in front of Captain Henry, feeling the weight of the silence. His gaze cuts through you, full of disappointment, and the atmosphere fills with unbearable tension. He doesn’t say anything, but you don’t need to hear more to know what he’s thinking. Every second drags on, and the feeling of having let down someone who once trusted you becomes unbearable. Finally, you can’t take it anymore. You break the silence, your voice sharp and filled with anger." "description">>
<<addDialogue "Casey" "Two weeks for this, Henry? Really? You force me to stay at home, make me feel like a criminal, and now you call me here just to say goodbye? Is that it? That easy? You could’ve just fired me with a simple phone call." "talk">>
<<addDialogue "Captain Havok" "You’re more than just another agent, Casey. I couldn’t say goodbye with a simple phone call. You’ve been through too much, and you’ve done so much for this city... you were a source of pride for our department. You deserve more than that, even if it’s hard for everyone, especially Rodríguez." "talk">>
<<addDialogue "" "I do it to save lives." "thoughts">>
<<addDialogue "Casey" "You know that what I did was for the case, for the victims. Because no one else was going to get their hands dirty to do what was necessary! Not you, not Rodríguez, not any of the others! And now it turns out I'm the bad one? After everything I've given, everything I've lost, you're just throwing me away?" "talk">>
<<addDialogue "Captain Havok" "I couldn't let you keep going down this path. It's not just about your last case. It's your attitude that's changed. You've started crossing lines... You've adopted practices that, while perhaps not always visible to others, are still a violation of the very values we stand for as officers of the law. You're no longer the person you used to be. And that... I can't ignore that. I can't let you keep sinking further into this abyss. I'm trying to save you." "talk">>
<<addDialogue "" "I don't need to be saved!" "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Let the anger out|preintro2]]">>
<<horizontalEnd>>
<<showNPC "Captain" "img/characters/henry/captain.png" "Captain Henry Havok">>
<<dialogue "Casey" "Saving me? Really, Henry? If I lost control, it's because no one else had the balls to do what needed to be done. You, Rodríguez, the others—you all played it safe while I got my hands dirty. And now you have the nerve to tell me this is for my own good? To say you’re ‘taking care of me’? I don’t need you to take care of me, Henry!" "talk">>
<<addDialogue "Captain Havok" "Casey... this isn't easy for me to do. But your behavior... it just leaves me no other choice." "talk">>
<<addDialogue "" "Is not easy? No choice? Fuck, Henry!" "thoughts">>
<<addDialogue "Casey" "Don’t pretend this is hard for you. I’m sure it’s tearing you up inside, right? Just as much as it’s tearing me apart." "talk">>
<<addDialogue "" "The captain's gaze hardens, and his tone grows more severe." "description">>
<<addDialogue "Captain Havok" "Enough! You’ve crossed too many lines. The arguments, the fights with other agents, showing up drunk at a crime scene… You’ve lost control. I could ask for the gun and the badge, but the gun is yours, so just hand over the badge." "talk">>
<<addDialogue "Casey" "Tsk..." "talk">>
<<addDialogue "" "You hesitate, your silence heavier than any words you could muster. Deep down, you know Henry is right. You stare at the badge in your hand, its weight suddenly unbearable. Finally, with a heavy heart, you place the badge on Henry's desk, the sound of it landing echoing in the quiet room." "description">>
<<addDialogue "Captain Havok" "I've spoken to mayor Quentin, and we've come to the conclusion that we can't give you any more chances. Please, we need you to sign the form." "talk">>
<<addDialogue "" "Captain Henry slides a document toward you." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Check the form|NameSelection]]">>
<<horizontalEnd>>
<<showNPC "Captain" "img/characters/henry/captain.png" "Captain Henry Havok">>
<<script>>
window.HealthSanitySystem.removeSanity(10)
<</script>>
<<if $practique is 1>>
<<goto "practiquewin">>
<</if>>
<<if $cavefight is 1>>
<<goto "wincave">>
<</if>>
<<if $wolfcave is 1>>
<<goto "wincavebattle">>
<</if>>
<<if $diabolicwolfcave is 1>>
<<goto "wincavebattle2">>
<</if>>
<<if $Fwolf is 1>>
<<goto "WinForestWolf">>
<</if>>
<<if $Fdiabolicwolf is 1>>
<<goto "WinForestDwolf">>
<</if>>
<<if $bwfight is 1>>
<<goto "Winbwfight">>
<</if>>
<<if $bwfight2 is 1>>
<<goto "Winbwfight2">>
<</if>>
<<if $srcff is 1>>
<<goto "Winsrcff">>
<</if>>
<<if $srcsf is 1>>
<<goto "SRcorridor2">>
<<set $srcsf = 2>>
<</if>>
<<if $Sroom2 is 1>>
<<goto "Sroom2win">>
<</if>>
<<if $MHfight is 1>>
<<goto "winEnemydoor">>
<</if>>
<<if $aberrationfight1 is 1>>
<<goto "Event_Aberration01">>
<</if>>
<<if $Fnurse is 1 || $corridorANurse is 1>>
<<set $randombandage = random(3)>>
<<if $randombandage is 3>>
<<goto "CellCorridorA2Item">>
<<else>>
<<goto "CellCorridorA2">>
<</if>>
<<set $Fnurse = 0>>
<</if>>
<<if $bbfight is 1>>
<<set $bbfight = 2>>
<<set $bbenemy = true>>
<<goto "bbwin">>
<</if>>
<<if $DemonA2 is 1>>
<<set $DemonA2 = 0>>
<<goto "CellCorridorA2">>
<</if>>
<<if $C2PeleaBB is 1>>
<<set $C2PeleaBB = 0>>
<<goto "C2PeleaBBwin">>
<</if>>
<<if $BedroomBPeleaBB is 1>>
<<set $BedroomBPeleaBB = 0>>
<<set $randomitem = random(3)>>
<<if $randombandage is 3>>
<<goto "BedroomBitem">>
<<else>>
<<goto "BedroomB">>
<</if>>
<</if>>
<<if $BedroomBPelea is 1>>
<<set $BedroomBPelea = 0>>
<<set $randomitem = random(3)>>
<<if $randombandage is 3>>
<<goto "BedroomBitem2">>
<<else>>
<<goto "BedroomB">>
<</if>>
<</if>>
<<if $ME is 1>>
<<set $ME = 2>>
<<goto "MEWin">>
<</if>>
<<if $TNurses is 1>>
<<set $TNurses = 0>>
<<goto "TNWin">>
<</if>>
<<if $MirrorFight is 1>>
<<set $MirrorFight = 0>>
<<goto "MirrorsWin">>
<</if>>
<<if $EventSisterPelea is 1>>
<<goto "EventSisterWin">>
<</if>>
<<if $intro is true>>
<<if $CaseyJacket is true && $CaseyCoat isnot true>>
<<setAvatarDirect "caseyjacket.png">>
<<elseif $CaseyJacket isnot true && $CaseyCoat is true>>
<<setAvatarDirect "caseycoat.png">>
<<else>>
<<setAvatarDirect "casey2.png">>
<</if>>
<<elseif $intro isnot true>>
<<setAvatarDirect "casey.png">>
<</if>><<if $practique is 1>>
<<goto "practiqueescape">>
<</if>>
<<if $cavefight is 1>>
<<goto "escapecavewolf">>
<</if>>
<<if $wolfcave is 1>>
<<goto "escapecavebattle">>
<</if>>
<<if $diabolicwolfcave is 1>>
<<goto "escapecavebattle2">>
<</if>>
<<if $Fwolf is 1>>
<<goto "EscapeForestWolf">>
<</if>>
<<if $Fdiabolicwolf is 1>>
<<goto "EscapeForestDwolf">>
<</if>>
<<if $bwfight is 1>>
<<goto "Escapebwfight">>
<</if>>
<<if $bwfight2 is 1>>
<<goto "Escapebwfight2">>
<</if>>
<<if $srcff is 1>>
<<goto "srcffescape">>
<</if>>
<<if $Sroom2 is 1>>
<<goto "Sroom2escape">>
<</if>>
<<if $srcsf is 1>>
<<goto "srcsfescape">>
<</if>>
<<if $MHfight is 1>>
<<set $MHenemy = false>>
<<goto "Main Hallway2">>
<</if>>
<<if $aberrationfight1 is 1>>
<<goto "Main Hallway3">>
<<set $aberrationfight1 = 0>>
<<set $AberrationEvent = 0>>
<</if>>
<<if $Fnurse is 1 || $corridorANurse is 1>>
<<set $Fnurse = 0>>
<<goto "CellCorridorA2">>
<</if>>
<<if $bbfight is 1>>
<<set $bbfight = 0>>
<<goto "BedroomA">>
<</if>>
<<if $DemonA2 is 1>>
<<set $DemonA2 = 0>>
<<goto "CellCorridorA2">>
<</if>>
<<if $BedroomBPeleaBB is 1>>
<<set $BedroomBPeleaBB = 0>>
<<goto "BedroomB">>
<</if>>
<<if $BedroomBPelea is 1>>
<<set $BedroomBPelea = 0>>
<<goto "BedroomB">>
<</if>>
<<if $ME is 1>>
<<set $ME = 0>>
<<goto "BedroomC">>
<</if>>
<<if $TNurses is 1>>
<<set $TNurses = 0>>
<<goto "BedroomC">>
<</if>>
<<if $C2PeleaBB is 1>>
<<set $C2PeleaBB = 0>>
<<goto "CellCorridorC2">>
<</if>>
<<if $MirrorFight is 1>>
<<set $MirrorFight = 0>>
<<goto "mirrors2">>
<</if>>
<<if $EventSisterPelea is 1>>
<<goto "EventSisterEscape">>
<</if>>
<<set $EventE1 = 0>>
<<set $EventE2 = 0>>
<<set $EventE3 = 0>>
<<set $EventE4 = 0>>
<<set $EventE5 = 0>>
<<set $EventE6 = 0>>
<<if $intro is true>>
<<if $CaseyJacket is true && $CaseyCoat isnot true>>
<<setAvatarDirect "caseyjacket.png">>
<<elseif $CaseyJacket isnot true && $CaseyCoat is true>>
<<setAvatarDirect "caseycoat.png">>
<<else>>
<<setAvatarDirect "casey2.png">>
<</if>>
<<elseif $intro isnot true>>
<<setAvatarDirect "casey.png">>
<</if>><<dialogue "" "The form is in front of you. At the top, the logo of the New Veris Police Department is clearly visible. It's a pre-established resignation form, issued by the department. The \"Emotional and psychological\" box has already been marked for you." "description">>
<<addImage "img/documents/rf.png">>
<<addDialogueInput "" "playerName" "Alina" "name-input" "$playerName" "noButton" "placeholder=First name">>
<<horizontalStart>>
<<addDialogue "" "[[Sign|introexit]]">>
<<horizontalEnd>>
<<set $Mc = {
Name: $playerName,
img: "img/characters/casey/casey-avatar.png"
}>>
<<set $McName = $playerName>>
<<set $avt = 1>>
<<script>>
window.addDocumentWithNotification(
"resignation_form",
"Resignation Form",
"The last document you take from NVPD",
"",
"close_photo",
"📋",
{
imagePath: "img/documents/rf.png",
location: "New Veris Police Department",
photographer: "Captain Havook",
frontDescription: `A pre-established resignation form from the New Veris Police Department.`
}
);
<</script>>
<<script>>
playSoundDirect('page.mp3');
<</script>>
<style>
input, select, textarea {
color: #ffffff;
background-color: #091928;
border: 1px solid #444;
padding: .4em;
}
input[type=text] {
min-width: 15em;
}
html[data-outlines] input:focus,
html[data-outlines] select:focus,
html[data-outlines] textarea:focus,
input:hover, select:hover, textarea:hover {
background-color: #3e3423;
border-color: #eee;
}
#textobox {
position: absolute;
top: 23vw;
left: 13vw;
color: #000000;
font-size: 1vw;
font-weight: bold;
z-index: 6000;
max-width: 20vw;
}
</style>
<<dialogue "" "You step out of Captain Havook's office with your shoulders slumped, feeling the weight of the decision you've just made—or rather, the decision that was imposed on you—pressing on your soul. The door to the captain's office slams shut behind you with a metallic sound, and for a moment, you stand there, frozen in the threshold, as if the world itself had stopped you in your tracks. The precinct, once your home, now feels foreign to you. Everything you've done, everything you've lived through, seems to crumble around you." "description">>
<<addDialogue "" "You walk down the hallway. The fluorescent light above you flickers, casting shadows that follow you, as if the building itself is chasing you. There's no turning back. You've been fired, and in doing so, you've lost more than just a job. You've lost your purpose, your identity, everything you once thought defined you." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Exit|introexit1]]">>
<<horizontalEnd>>
<<set $Mc2 = $Mc>>
<<set $McName = $playerName>>
<<dialogue "" "You reach the exit, now you leave behind forever what you once considered your homeand. As you open the front door, the cold air from the street hits your face, as if the outside world is greeting you with indifference. There are no celebrations, no applause. Just the emptiness of a decision made for you, or at least that's what you'd like to believe, because deep down, you know it's all your fault. The sound of your footsteps fades into the darkness of the night. Then you close your eyes, and the tears finally come, silent but heavy, slipping down your face as you stand alone in the cold." "description">>
<<addDialogue "" "Did I really want to follow this path? To lose everything because of decisions I couldn't avoid? Henry is right, maybe it's time to change. To leave behind this life that consumes me, this endless vicious circle. My next stop will be my own office, no rules imposed by others, no judgment from anyone. But this time, it will be different. I have to do it the right way. No more lies. No more excuses. It's time to start over. Casey, I know you can do it, I know I can do it..." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Good bye forever|intromessage]]">>
<<horizontalEnd>>
<<setAvatarDirect "sad.png">>
<<unlockPhoto 1 2>> <<timed 8s>><<dialogue "" "It's been two years since your life changed completely. Two years since everything came crashing down." "description">><<addDialogue "" "You remember the person you used to be: sharp, analytical, always in control. The kind of Detective who could see the truth in the midst of lies. But after everything that happened, that part of you became hard to find. You drowned in darkness, in guilt, in self-destruction. You hit rock bottom and almost lost everything." "description">>
<<addDialogue "" "But you pulled yourself out. Slowly,you started to piece together what was left of you. With what little you had, you managed to open your own Detective agency—a way to rebuild your life, to make sense of what remained." "description">>
<<addDialogue """Now, your mind drifts. Memories and worries swirl like smoke, pulling you deeper." "description">><</timed>>
<<timed 8s>><<horizontalStart>><<addDialogue "" "[[Continue dreaming|intro]]">><<horizontalEnd>><</timed>>
<<script>>
window.ResponsiveChaptertitle("2 Years Later");
setTimeout(() => {
['#text-section', '.dialogue-container', '#dialogue-content'].forEach(selector => {
const element = document.querySelector(selector);
if (element) {
element.style.setProperty('opacity', '1', 'important');
element.style.setProperty('pointer-events', 'auto', 'important');
}
});
}, 5200);
window.gameState.inventory.main.fill(null);
window.gameState.inventory.main[5] = null;
window.gameState.inventory.quickbar.fill(null);
stopAllMusic();
<</script>>
<<set $intro = true>>
<<set $bag = 0>>
<<setAvatarDirect "nude.png">>
<<timed 100ms>>
<<vdialogue "" "My name is $McName Casey, but everyone calls me Casey. I was born in New Veris 25 years ago. At 18, I joined the police force, convinced I could make a difference. My analytical mind and knack for solving cases earned me a promotion to detective by the time I was 20, even before I finished my criminology degree. Intelligence agencies reached out with offers, but I turned them down. I believed my place was here, on the streets of the city I was born in. I thought I was ready for anything." "thoughts">>
<<addDialogue "" "I wasn’t. Everything changed the night my parents were murdered and my sister, Angelica, was kidnapped. That night, unaware of what was happening in my home, I was spending the evening with..." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[My ex, Luke (hetero)|malepartner]]">>
<<addDialogue "" "[[My ex, Violet (lesbian)|femalepartner]]">>
<<horizontalEnd>>
<<addDialoguePos "" "[[Gabriela (disable previous relationship)|nopartner]]" "center">>
<</timed>>
<<createMenu>>
<<set $Naked = true>>
<<set $intro = true>>
<<set $bag = 1>>
<<script>>
setTimeout(() => {
audioSystemCrossfade('newstart.mp3', 500);
}, 1000);
State.variables.Sanity = State.variables.MaxSanity;
window.HealthSanitySystem.addSanity(80);
window.HealthSanitySystem.addHealth(100);
<</script>>
<<script>>
window.setLighting(100);
<</script>>
<<unlockPhoto 1 3>>
<<goto "Shooting range">>
<<set $practique = 0>><<goto "Shooting range">>
<<set $practique = 0>><<dialogue "" "That night, unaware of what was happening at home, I was with Luke, enjoying an evening together. I could never have imagined that, at that same moment, someone would break into my house. I never believed it was a random robbery; something inside me told me it had been planned, that there was more behind it all." "thoughts">>
<<addDialogue "" "My parents were found dead, and Angelica... my sister Angelica had been kidnapped and taken away from me." "thoughts">>
<<addDialogue "" "For months... no, for two years, I searched relentlessly, clinging to the hope of finding her alive. But it was all in vain. The police closed the case due to lack of evidence, leaving me alone with my grief." "thoughts">>
<<addDialogue "" "From that moment on, my life unraveled. I sank into guilt and alcohol, trying to forget the emptiness inside me. I became reckless, crossing lines I swore I would never cross. My mistakes hurt those close to me, and in the end, I was thrown out of the police force." "thoughts">>
<<addDialogue "" "Luke tried to help me at first, but I wasn’t the same person anymore. I pushed him away, locked myself in my own suffering, until he finally gave up. I don’t blame him. No one can carry the weight of someone who is destroying themselves." "thoughts">>
<<addDialogue "" "But even at my worst, I’ve always been a rational person. When I hit rock bottom, I knew I couldn’t stay there. I opened a private detective agency to rebuild what little was left of my life, to keep searching for justice in a world that had taken everything from me." "thoughts">>
<<addDialogue "" "Maybe it’s redemption. Maybe it’s revenge. Or maybe I’m just a broken woman chasing something I’ll never find." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Wake up|intro1]]">>
<<horizontalEnd>>
<<unlockCharacterOnly 6>><<dialogue "" "That night, unaware of what was happening at home, I was with Violet, enjoying an evening together. I could never have imagined that, at that same moment, someone would break into my house. I never believed it was a random robbery; something inside me told me it had been planned, that there was more behind it all." "thoughts">>
<<addDialogue "" "My parents were found dead, and Angelica... my sister Angelica had been kidnapped and taken away from me." "thoughts">>
<<addDialogue "" "For months... no, for two years, I searched relentlessly, clinging to the hope of finding her alive. But it was all in vain. The police closed the case due to lack of evidence, leaving me alone with my grief." "thoughts">>
<<addDialogue "" "From that moment on, my life unraveled. I sank into guilt and alcohol, trying to forget the emptiness inside me. I became reckless, crossing lines I swore I would never cross. My mistakes hurt those close to me, and in the end, I was thrown out of the police force." "thoughts">>
<<addDialogue "" "Violet did everything she could to help me, but I wasn't the same. I pushed her away, locked myself in my own suffering, until she finally gave up. I don't blame her. No one can carry the weight of someone who is destroying themselves." "thoughts">>
<<addDialogue "" "But even at my worst, I’ve always been a rational person. When I hit rock bottom, I knew I couldn’t stay there. I opened a private detective agency to rebuild what little was left of my life, to keep searching for justice in a world that had taken everything from me." "thoughts">>
<<addDialogue "" "Maybe it’s redemption. Maybe it’s revenge. Or maybe I’m just a broken woman chasing something I’ll never find." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Wake up|intro1]]">>
<<horizontalEnd>>
<<unlockCharacterOnly 7>><<dialogue "" "That night, I was working on a simple case with Gabriela Rodríguez. The investigation wasn't complicated, but the lack of a real challenge only made the fatigue more apparent. We had been reviewing reports, discussing potential suspects, and going through some notes, all in a relatively calm environment." "thoughts">>
<<addDialogue "" "I never imagined that, while we were so focused on what seemed like a routine task, something much darker was happening at my home." "thoughts">>
<<addDialogue "" "My parents were found dead, and Angelica... my sister Angelica had been kidnapped and taken away from me." "thoughts">>
<<addDialogue "" "For months... no, for two years, I searched for her relentlessly, holding on to the hope that I would find her alive. But it was in vain. The police closed the case due to a lack of evidence, leaving me alone with my grief." "thoughts">>
<<addDialogue "" "From that moment, my life fell apart. I drowned in guilt and alcohol, trying to forget the emptiness I felt inside. I became reckless, crossed lines I swore I never would. My mistakes hurt those close to me, and eventually, I was thrown out of the police force." "thoughts">>
<<addDialogue "" "But even at my lowest, I've always been a rational person. When I hit rock bottom, I knew I couldn't stay there. I opened a private detective agency to rebuild what little was left of my life, to keep searching for justice in a world that had taken everything from me." "thoughts">>
<<addDialogue "" "Maybe it's redemption. Maybe it's revenge. Or maybe I'm just a broken woman chasing something I'll never find." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Wake up|intro1]]">>
<<horizontalEnd>>
<<set $Vpartner = false>>
<<set $Mpartner = false>>
<<set $Fpartner = false>>
<<set $Solo = true>><<dialogue "" "You jolted awake, your breathing ragged, and a deep sadness weighed heavily on your chest. The room was silent, but the echo of the nightmare still lingered in your mind." "description">>
<<addDialogue "Casey" "After all this time, the nightmares still haunt me. But this one… was different. How strange it felt—as if I were explaining my life to someone. It was unsettling, surreal. 'Hah.' Anyway..." "talk">>
<<addDialogue "" "You sit up slowly, the late afternoon air brushing against your bare skin as the sheets slip away, revealing the curves of your body. The soft light of the setting sun streams through the window, tracing every line and casting warm, golden shadows across your form. The quiet rustle of fabric falling to the floor is the only sound as you rise. You glance down at yourself and smirk, a wry chuckle escaping your lips. Stretching lazily, you make your way toward the closet." "description">>
<<addDialogue "" "Well, at least I don’t have to worry about wrinkled clothes." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Get dressed|dressed]]">>
<<addDialogue "" "[[Stay naked|intro3]]">>
<<horizontalEnd>>
<<dialogue "Casey" "Time to stop scandalizing the furniture and find something to wear." "talk">>
<<addDialogue "" "With a sigh, you put on your underwear and then slip into a fitted black t-shirt that feels comfortable and versatile. You grab a pair of dark jeans—durable and practical—and lace up your boots firmly, preparing yourself for whatever lies ahead. You approach the wardrobe and open it, examining the clothing options in front of you. Your gaze settles on two items: a sleek, shiny new black leather jacket with a modern and bold look, and a light brown trench coat, worn by time but familiar, like an old friend that has always been there during the toughest moments." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Black jacket|blackjacketIntro]]">>
<<addDialogue "" "[[Trench coat|trenchcoatIntro]]">>
<<horizontalEnd>>
<<setAvatarDirect "casey2.png">>
<<set $Naked = false>><<dialogue "" "Solitude has its advantages. I fell free..." "thoughts">>
<<addDialogue "" "Just as the thought settles, a sharp pain shoots through your head. It’s sudden and jarring, like a cruel reminder that the peace is fleeting. You press your fingers to your temples, trying to steady the thrum, but the ache lingers, gnawing at the edges of your focus." "description">>
<<addDialogue "" "Damn... my head’s spinning... I need a break. I’d better take one of my pills." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Pick the pills|intropills]]">>
<<horizontalEnd>>
<<set $wakeup = 1>><<dialogue "" "With a quiet decision, you reach for the black leather jacket you recently purchased and slip it on. The smooth leather feels sleek and edgy as it settles over your shoulders. You leave the asymmetrical zipper unfastened, the jacket's distinctive collar and metal buttons giving it a bold character. Ready and steady, you adjust the lapels while looking at yourself in the mirror, preparing yourself for whatever comes next." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Put on the trench coat|trenchcoatIntro]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<if $introcase isnot 2>>
<<addDialoguePos "" "[[Get moving|intro2]]" "center">>
<<else>>
<<addDialoguePos "" "[[Get moving|introflat]]" "center">>
<</if>>
<<setAvatarDirect "caseyjacket.png">>
<<set $CaseyCoat = false>>
<<set $CaseyJacket = true>>
<<set $Naked = false>>
<<script>>
window.ClothingSystem.setClothes('jacket');
<</script>>
<<dialogue "" "With a quiet decision, you reach for the light brown trench coat and slip it on. The worn fabric feels familiar and comforting as it settles over your shoulders. You leave the buttons unfastened, the coat hanging loosely around you like an old, trusted friend. Ready and steady, you adjust the collar while looking at yourself in the mirror, preparing yourself for whatever comes next." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Put on the jacket|blackjacketIntro]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<if $introcase isnot 2>>
<<addDialoguePos "" "[[Get moving|intro2]]" "center">>
<<else>>
<<addDialoguePos "" "[[Get moving|introflat]]" "center">>
<</if>>
<<setAvatarDirect "caseycoat.png">>
<<set $CaseyCoat = true>>
<<set $CaseyJacket = false>>
<<script>>
window.ClothingSystem.setClothes('coat');
<</script>><<script>>
hideCharacterMenu();
<</script>>
<<script>>
const myThreePics = [
'img/picture1.png',
'img/picture2.png',
'img/picture3.jpg'
];
window.SlideshowSystem.create('my-slideshow', myThreePics, {
interval: 4000,
loop: true,
fadeTransition: true,
fadeDuration: 1000,
autoStart: true,
target: 'body'
});
<</script>>
<div><a tabindex="0" role="button" id="save-button">Continue</a>">>
<div>[[New story|introA]]">><<switch visited()>>
<<case 1>>
<<dialogue "" "The space is small but functional. A desk with a computer and an old printer, some disorganized papers, occupies one corner, while the bed, with a blanket thrown on carelessly, rests near a wardrobe with slightly misaligned doors. The dim lighting from a desk lamp creates an atmosphere that is both practical and messy, the perfect reflection of the pace of life in this place." "description">>
<<addDialogue "Casey" "Everything I need to work and sleep..." "talk">>
<<addDialogue "" "Combining productivity and comfort in one space..." "thoughts">>
<<addDialogue "Casey" "Sure, haha... That's what the guy who rented me the apartment told me." "talk">>
<<default>>
<<dialogue "" "The space is small but functional: a desk with everything you need to work and, right next to it, the bed, combining productivity and comfort in one space—or at least that's what you like to think." "description">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Check the desk|checkdesk]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<horizontalStart>>
<<addDialoguePos "" "[[Go to entrance|introflat2]]">>
<<addDialoguePos "" "[[Go to bathroom|introtoilet]]">>
<<horizontalEnd>>
<<if $CaseyJacket is true && $introphoto isnot true>>
<<unlockPhoto 1 5>>
<<set $introphoto = true>>
<</if>>
<<if $CaseyCoat is true && $introphoto isnot true>>
<<unlockPhoto 1 4>>
<<set $introphoto = true>>
<</if>><<dialogue "" "You feel a bit dizzy, with a slight headache that won’t go away. It's an uncomfortable sensation, like the fatigue from a long day finally catching up with you. You’ve barely gotten half an hour of rest in the car, and it doesn't seem to have been enough after two nights spent chasing Gulliver, that damn fast and elusive cat that keeps slipping away." "description">>
<<addDialogue "Casey" "Damn Gulliver... my head’s spinning... I need a break. I’d better take one of my pills." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Pick the pills|intropills]]">>
<<horizontalEnd>>
<<set $wakeup = 1>>
<<if $CaseyJacket is true && $introphoto isnot true>>
<<unlockPhoto 1 5>>
<<set $introphoto = true>>
<</if>>
<<if $CaseyCoat is true && $introphoto isnot true>>
<<unlockPhoto 1 4>>
<<set $introphoto = true>>
<</if>><<dialogue "" "You open one of the drawers and grab a bottle of pills. You look inside; you take the the Calming Pills from inside. Then you look at the table searching for some water, but you only see an empty glass and a bottle of whiskey close to you. There's still a bit of the alcoholic substance left inside." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Drink whisky|introwhisky]]">>
<<addDialogue "" "[[Drink water|intropills2]]">>
<<horizontalEnd>>
<<script>>
window.addItemFromDatabase('pills', 5);
<</script>><<dialogue "" "The desk shows its age, with a surface scratched and dented from years of wear. A modest computer sits on one side. Scattered papers, a coffee mug with a faint ring at the bottom, and a cracked pen holder clutter the space. The drawers are slightly crooked, hinting at frequent use." "description">>
<<addImage "img/events/homedesk.png">>
<<horizontalStart>>
<<addDialogue "" "[[Open the drawer|introgun]] [[Check the computer|introsave2]]">>
<<addDialogue "" "[[Computer|introsave2]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Leave desk|introflat]]" "center">>
<<if $Naked is true>>
<<switch visited()>>
<<case 1>>
<<dialogue "" "The entrance to the apartment is narrow, but just enough to give a sense of direct access to your life. The slightly worn wooden floor stretches into the small hallway that leads to the office and bathroom. An entry table rests against the wall, cluttered with items like keys, letters, and an unlit lamp. The dim light from a ceiling fixture barely illuminates the space, making the entry feel somewhat gloomy, as if it hasn't been updated in years. The atmosphere is simple, but as always, a reminder of what your life is like now." "description">>
<<default>>
<<dialogue "" "The entrance to the apartment is narrow, but just enough to give a sense of direct access to your life." "description">>
<<addDialogue "" "It’s probably best if I get dressed before heading out into the streets." "talk">>
<</switch>>
<<else>>
<<switch visited()>>
<<case 1>>
<<dialogue "" "The entrance to the apartment is narrow, but just enough to give a sense of direct access to your life. The slightly worn wooden floor stretches into the small hallway that leads to the office. An entry table rests against the wall, cluttered with items like keys, letters, and an unlit lamp. The dim light from a ceiling fixture barely illuminates the space, making the entry feel somewhat gloomy, as if it hasn't been updated in years. The atmosphere is simple, but as always, a reminder of what your life is like now." "description">>
<<default>>
<<dialogue "" "The entrance to the apartment is narrow, but just enough to give a sense of direct access to your life." "description">>
<</switch>>
<</if>>
<<if $Naked is true>>
<<horizontalStart>>
<<addDialogue "" "[[Check drawers|introbatteries]]">>
<<addDialogue "" "[[Put your clothes on|dressed]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialoguePos "" "[[Go to office|introflat]]" "center">>
<<horizontalEnd>>
<<else>>
<<if $introgun is true>>
<<horizontalStart>>
<<addDialogue "" "[[Check drawers|introbatteries]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Leave the apartment|intropasillo]]">>
<<addDialogue "" "[[Go to office|introflat]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Check drawers|introbatteries]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Go to office|introflat]]" "center">>
<</if>>
<</if>>
<<switch visited()>>
<<case 1>>
<<dialogue "" "The bathroom is small but functional. A water-stained mirror hangs above the sink, alongside some scattered toiletries. The shower, with a half-rotten plastic curtain hanging precariously, and the worn-out tiled floor, give the bathroom an almost unsettling feel. In one corner, a small medicine cabinet is closed, its contents likely forgotten, but always within reach when needed." "description">>
<<default>>
<<dialogue "" "The bathroom is small but functional. A water-stained mirror hangs above the sink, alongside some scattered toiletries." "description">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Check the mirror|intromirror]]">>
<<addDialogue "" "[[Check the cabinet|intromedkit]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Exit|introflat]]" "center">><<switch visited()>>
<<case 1>>
<<dialogue "" "You step closer to the mirror, your fingers grazing over your hair as you adjust it with a slow, deliberate motion. A fleeting touch on your skin, making sure every detail is perfect. You catch your reflection—eyes lingering a moment longer than usual—before you nod to yourself, feeling the confidence settle in. You're ready, but the allure lingers." "description">>
<<dialogue "Casey" "There's no time for more..." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Bathroom|introtoilet]]">>
<<horizontalEnd>>
<<case 2>>
<<addDialogue "" "You meet your own gaze in the mirror, your fingers lightly brushing through your hair, ensuring everything is just right before you move on." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Bathroom|introtoilet]]">>
<<horizontalEnd>>
<<default>>
<<dialogue "" "You glance at your reflection, making sure everything is in place before moving on." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Bathroom|introtoilet]]">>
<<horizontalEnd>>
<</switch>><<if $intromedkit is true>>
<<dialogue "" "There’s nothing else that could be of use." "description">>
<<addImage "img/events/homecabinet.png">>
<<horizontalStart>>
<<addDialogue "" "[[Back|introtoilet]]">>
<<horizontalEnd>>
<<else>>
<<dialogue "" "You open the bathroom cabinet and find 3 packaged bandages, along with a small, somewhat outdated first aid kit. The kit is slightly Rust, but it seems to still have the essentials: some band-aids, disinfectant, and a couple of other things. It's not much, but it could come in handy if something comes up." "description">>
<<addDialogue "Casey" "Who knows, this could all be useful." "talk">>
<<addImage "img/events/homecabinet.png">>
<<horizontalStart>>
<<addDialogue "" "[[Take items|intromedkit2]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|introtoilet]]" "center">>
<</if>>
<<if $introbatteries is true>>
<<dialogue "" "You open the drawer again. There's nothing left inside, just emptiness." "description">>
<<else>>
<<dialogue "" "You open the drawers of the entrance table. The only thing inside is a pack of cheap batteries. Nothing else interesting. A faint smell of dust rises as you close the drawer." "description">>
<<addImage "img/events/homedrawers.png">>
<</if>>
<<if $introbatteries isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Take batteries|introbatteries2]]">>
<<horizontalEnd>>
<</if>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|introflat2]]" "center">>
<<switch visited()>>
<<case 1>>
<<dialogue "" "You step out of the apartment, and the door closes with a soft click behind you. The hallway is dimly lit, with the scent of old wood and dust in the air. Your footsteps resonate softly on the floor as you make your way toward the stairs." "description">>
<<addDialogue "" "As you descend toward the street, you notice that one of your neighbor's doors is slightly ajar. As you pass by the door, you think you hear faint, distant screams—almost imperceptible—reaching your ears. They sound like a woman's." "description">>
<<addDialogue "Casey" "What was that?" "talk">>
<<addDialogue "" "Sneaking in just like that would be intrusive, but what if someone needs help?" "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Check neighbours|neighbourspy]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<horizontalStart>>
<<addDialogue "" "[[Go to street|introstreet]]">>
<<addDialogue "" "[[My apartment|introflat2]]">>
<<horizontalEnd>>
<<case 2>>
<<if $neighbourspy is true>>
<<dialogue "" "As you pass through the hallway again, your steps feel unsteady on the wooden floor. Your eyes settle on the neighbors' door, now firmly closed. You feel a slight shiver as a memory slips into your mind: the unexpected sight you encountered upon entering." "description">>
<<addDialogue "" "Why did I have to do it? I shouldn't have done it... but now it's in my head forever." "thoughts">>
<<addDialogue "" "You pause for a moment in front of the door, the echo of your own thoughts pounding in your head. Did you really enter out of curiosity, or was it just an accident? The doubt torments you as you move toward the stairs, trying to push that image from your mind." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Go to street|introstreet]]">>
<<addDialogue "" "[[My apartment|introflat2]]">>
<<horizontalEnd>>
<<else>>
<<dialogue "" "You cross the hallway again, your steps faintly echoing on the wooden floor. As you pass in front of the neighbor's door, you notice that it's now closed." "description">>
<<addDialogue "" "It was probably nothing." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Go to street|introstreet]]">>
<<addDialogue "" "[[My apartment|introflat2]]">>
<<horizontalEnd>>
<</if>>
<<default>>
<<dialogue "" "You cross the hallway again, your steps faintly echoing on the wooden floor." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Go to street|introstreet]]">>
<<addDialogue "" "[[My apartment|introflat2]]">>
<<horizontalEnd>>
<</switch>><<dialogue "" "As you get closer the room, the screams break the silence once again, but you notice a subtle change in their tone. Although they clearly express pain, they also carry a faint hint of pleasure, like distant echoes of something you had forgotten. Even if only for a moment, they remind you of a time that now feels very far away." "description">>
<<addDialogue "Casey" "Oh wow... I think it's..." "talk">>
<<addDialogue "" "It doesn’t seem like anyone needs help. I should leave." "thoughts">>
<<addDialogue "" "You try to turn and leave, but the moans hit you like a punch straight to the chest. A mix of anger and uncontrollable desire begins to burn inside you, rooting you to the spot as if chains were holding you in place. The door is slightly ajar, and no matter how hard you fight the urge, you can’t stop yourself from peeking inside." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Glance|peekintro]]">>
<<horizontalEnd>>
<<unlockCharacterOnly 11>><<if $Rodriguezintro is true>>
<<dialogue "" "You descend the stairs of your building, the evening air thick with humidity, sticking to your skin like a heavy garment. It's hot, but not unbearable, just uncomfortable. The main door creaks as you push it open, and the slight coolness from outside hits you with a bit of relief. You don't take long to notice her." "description">>
<<addDialogue "" "She's leaning against a lamppost a few meters away, smiling slightly while fiddling with her phone. Your old friend Gabriella. It’s been a year since you reconciled, and though the fight that separated you is now a distant memory, the ease between the two of you is evident. The wind moves the strands of her high ponytail as the sun reflects off her dark hair, giving her a relaxed air, almost as if there had never been any distance between you." "description">>
<<addDialogue "" "Gabriela lifts her head and sees you, her eyes light up immediately, as if the simple act of seeing you there makes her feel that everything is right again, she laughs and waves at you while stepping away from the streetlight and walking toward you." "description">>
<<addDialogue "Gabriela Rodriguez" "I was just about to send you a message!" "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Hey Gabi!|introgabifriend]]">>
<<horizontalEnd>>
<<showNPC "rodriguez" "img/characters/rodriguez/gabriela2.png" "Gabriela Rodriguez">>
<<else>>
<<dialogue "" "You descend the stairs of your building, the evening air thick with humidity, sticking to your skin like a heavy garment. It's hot, but not unbearable, just uncomfortable. The main door creaks as you push it open, and the slight coolness from outside hits you with a bit of relief." "description">>
<<addDialogue "" "You don't take long to notice her. She's leaning against a lamppost a few meters away, arms crossed, her gaze fixed on the ground. Gabriela, your former colleague. It’s been two years since you last spoke, and despite the fight, you know her energy is still the same, but now she seems surrounded by a kind of contained calm. The wind moves the strands of her high ponytail as the sun reflects off her dark hair." "description">>
<<addDialogue "" "She hasn't called or sent a message. Still, there she is, lingering like a restless ghost. Gabriela lifts her head and sees you. For a moment, time seems to freeze. There’s something vulnerable in her gaze, a crack in her usual armor, something you didn’t expect, —Casey... —she begins, her voice a mix of nostalgia and something more undefinable." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Gabi...|introgabinofirend]]">>
<<horizontalEnd>>
<</if>>
<<if $introgun is true>>
<<dialogue "" "You open the drawer again, but there’s nothing left of interest. The flashlight and gun are already in your hands. The drawer is now bare, the faint smell of dust lingering. Time to move on." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|introflat]]">>
<<horizontalEnd>>
<<else>>
<<dialogue "" "You approach the desk and open the drawer cautiously, letting your fingers explore its contents until you find what you’re looking for. You grip it with practiced familiarity, feeling the weight that has always been a part of you. You carefully draw it from its holster, making sure it’s ready. The sharp click of the safety switching off reminds you that the case has only just begun, and nothing here will be easy." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take the gun and bullets|introgun2]]">>
<<horizontalEnd>>
<</if>>
<<dialogue "" "The computer whirs softly as it powers on, the glow of the screen flickering weakly in the dim light. The interface is bare, a relic of simpler times. The soft hum of the machine fills the silence, offering a moment of quiet focus." "description">>
<<addImage "img/events/homedesk.png">>
<<horizontalStart>>
<<addDialogue "" "<div class='main-menu-btn' id='save-button'>Save/Load</div>">>
<<horizontalEnd>>
<<addDialoguePos "" "[[Go back|checkdesk]]" "center">>
<<script>>
// Ensure SugarCube save functionality
$(document).ready(function() {
// Direct save method for SugarCube
$('#save-button').on('click', function() {
// Explicitly use SugarCube's save method
try {
// Open saves dialog
UI.saves();
} catch (error) {
// Fallback error handling
console.error("Save functionality error:", error);
alert("Save function could not be executed.");
}
});
});
<</script>>
<<if $IntroComplete is true>>
<<script>>
setTimeout(() => {
audioSystemCrossfade('newstart.mp3', 4000);
}, 1000);
<</script>>
<<set $IntroComplete = false>>
<</if>>
<<dialogue "" "You grab the bandages and the medicine and place them in your backpack." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|introtoilet]]">>
<<horizontalEnd>>
<<script>>
window.addItemFromDatabase('medkit', 1);
window.addItemFromDatabase('bandages', 3);
<</script>>
<<set $intromedkit = true>><<dialogue "" "You grab the batteries and put them in your backpack." "description">>
<<addDialogue "Casey" " Well, some batteries could come in handy, especially if you're heading to a dark, abandoned place." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|introflat2]]">>
<<horizontalEnd>>
<<addItem "battery" 10>>
<<set $introbatteries = true>><<dialogue "" "You grab the bottle of whiskey and take a swig, the liquid burning your throat as it goes down." "description">>
<<addDialogue "Casey" " ¡Cof, cof!" "talk">>
<<if $Naked is true>>
<<addDialogue "" "I know this only takes me further from what I really want. It's better not to fall back into those old habits, or everything I've rebuilt will crumble." "thoughts">>
<<addDialogue "" "As you think, your hand glides gently over your body, brushing across your chest before slowly descending." "description">>
<<addDialogue "" "Hmm... I didn’t realize how desperate I was for action. It’s probably best if I focus on the Gulliver rescue case, but I’m so excited... I don’t even remember the last time." "thoughts">>
<<else>>
<<addDialogue "" "A momentary relief. But I know this only takes me further from what I really want. It's better not to fall back into those old habits, or everything I've rebuilt will crumble. It’s probably better I get to work on the Gulliver rescue case. The client is getting quite restless." "thoughts">>
<</if>>
<<if $Naked is true>>
<<horizontalStart>>
<<addDialogue "" "[[Descend the hand|intromasturbation]]">>
<<addDialogue "" "[[Check the missing poster|introcaseold]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Check the missing poster|introcaseold]]">>
<<horizontalEnd>>
<</if>>
<<script>>
window.HealthSanitySystem.removeHealth(10)
<</script>>
<<dialogue "" "You push the bottle of alcohol aside with determination, making it clear you don't need it. Instead, you reach out and take a glass of fresh water, feeling how the crystal-clear liquid offers a calm that alcohol could never provide." "description">>
<<if $Naked is true>>
<<addDialogue "" "It's better not to fall back into old habits. Every time you give in, you move further away from the person you're trying to be. Today, control is stronger than temptation." "thoughts">>
<<addDialogue "" "As you think, your hand glides gently over your body, brushing across your chest before slowly descending." "description">>
<<addDialogue "" "Hmm... I didn’t realize how desperate I was for action. It’s probably best if I focus on the Gulliver rescue case, but I’m so excited... I don’t even remember the last time." "thoughts">>
<<else>>
<<addDialogue "" "It's better not to fall back into old habits. Every time you give in, you move further away from the person you're trying to be. Today, control is stronger than temptation. It’s probably better I get to work on the Gulliver rescue case. The client is getting quite restless." "thoughts">>
<</if>>
<<if $Naked is true>>
<<horizontalStart>>
<<addDialogue "" "[[Descend the hand|intromasturbation]]">>
<<addDialogue "" "[[Check the missing poster|introcaseold]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Check the missing poster|introcaseold]]">>
<<horizontalEnd>>
<</if>>
<<dialogue "" "You lie down on your bed, letting the softness of the sheets wrap around you. Your fingers begin to glide over your skin, first slowly, but gradually picking up speed in an attempt to relieve a pent-up tension. You close your eyes, allowing your mind to wander through fleeting sensations and thoughts." "description">>
<<addDialogue "" "Oh... yes, right there... lick right there..." "thoughts">>
<<addDialogue "" "Time seemed to stand still for a moment, as if the outside world didn’t exist. A gentle current of electricity ran through your body, making you arch your back slightly." "description">>
<<addDialogue "Casey" "Oh..! Hmm..." "talk">>
<<addVideo "media/casey/pussy.mp4">>
<<horizontalStart>>
<<addDialogue "" "[[Faster|introPhone]]">>
<<horizontalEnd>>
<<unlockVideo 1 1>> <<dialogue "" "You look at the sheet in front of you. The image of a gray cat with yellow eyes occupies the center, accompanied by the words "Missing." The $3,000 reward is written in bold, far too high for a lost cat." "description">>
<<addDialogue "" "$3,000 for a damn cat. Something doesn’t add up. A lost cat isn’t worth that much, right? Maybe there’s more to this." "thoughts">>
<<addDialogue "Casey" "Why am I so intrigued by this seemingly insignificant case?" "talk">>
<<addDialogue "" "Maybe it’s the reward. Or maybe... I’m just getting hooked on the idea that not everything is as it seems again... If I remember correctly, the owner’s name is Sofia Bennett..." "thoughts">>
<<addDialogue "Casey" "If what I thought, it’s just a cat that escaped." "talk">>
<<addDialogue "" "With a sigh, you leave the paper on the desk and glance at the phone, thinking about what to do next." "description">>
<<addDialogue "" "The details are sparse: the cat, the reward, and an address. Nothing I haven't seen before. But that money... that's what's keeping me uneasy." "thoughts">>
<<addImage "img/documents/guli.png">>
<<horizontalStart>>
<<addDialogue "" "[[Continue reading|introcaseold2]]">>
<<horizontalEnd>>
<script>
window.addDocumentWithNotification(
"missing_poster",
"Missing Poster",
"Missing cat flyer.",
"",
"photo",
"📋",
{
imagePath: "img/documents/guli.png",
location: "Taken from a lamppost in the street",
photographer: "Sofia Bennett",
frontDescription: "An informational flyer about a missing cat named Gulliver that you picked up from a lamppost."
}
);
</script>
<<script>>
playSoundDirect('page.mp3');
<</script>>
<<set $gulidocument = true>>
<<dialogue "" "Just as the intensity was beginning to build, the shrill sound of the phone ringing pulls you out of your trance..." "description">>
<<addDialogue "Casey" "Shit! Dammed phone..." "talk">>
<<addDialogue "" "Seeing the unknown number, your instinct tells you it's something important. You answer, and before you can say anything, you hear, "Casey?" a deep, authoritative voice says." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Detective Casey speaking|introPhone2]]">>
<<horizontalEnd>>
<<timed 2s>>
<<script>>
playSoundDirect('codec.mp3');
<</script>>
<</timed>>
<<timed 4s>>
<<script>>
playSoundDirect('codec.mp3');
<</script>>
<</timed>>
<<timed 6s>>
<<script>>
playSoundDirect('codec.mp3');
<</script>>
<</timed>>
<<timed 8s>>
<<script>>
playSoundDirect('codec.mp3');
<</script>>
<</timed>><<dialogue "" "Suddenly, the sound of the phone pulls you from your thoughts. Seeing the unknown number, your instinct tells you it's something important. You answer, and before you can say anything, you hear, Casey? a deep, authoritative voice says." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Detective Casey speaking|introPhone2]]">>
<<horizontalEnd>><<dialogue "Casey" "Private Detective Casey, what can I do for you?" "talk">>
<<timed 100ms>>
<<vdialogue "Mayor Quentin" "Casey? $McName Casey? It’s me, the mayor, Quentin. You remember, right?" "talk">>
<<addDialogue "" "The damn mayor, what the hell does he want? I should hang up." "thoughts">>
<<addDialogue "Casey" "It’s you, Quentin? How long has it been...? Tell me, why shouldn’t I hang up right now?" "talk">>
<<addDialogue "Mayor Quentin" "Please, Casey, listen to me, this is important. I’m asking for your help, not just me, the whole city is counting on you..." "talk">>
<<addDialogue "" "And now you're coming at me with this?" "thoughts">>
<<addDialogue "Casey" "Are you kidding me? Hmf... Okey I hear you..." "talk">>
<<addDialogue "" "At least I really appreciate that he doesn't bother with any of that political bullshit." "thoughts">>
<<addDialogue "Mayor Quentin" "Something strange is happening in the city. I don’t know if you’ve heard, but several girls have gone missing. The families are all over me, damn it, I’m drowning here... coughs... Damn it… I need the best to solve this case, and you’re the best Detective in the city, or at least you were before... well, the tragic incident... you know..." "talk">>
<<addDialogue "" "He's desperate." "thoughts">>
<<addDialogue "Casey" "Before Henry and you forced me to resign, right? And now you’re calling because you’re desperate?" "talk">>
<<addDialogue "Mayor Quentin" "Listen, you made a lot of mistakes, but... ugh… that’s not why I’m calling you. I know I put you through a rough time, and I get that this isn’t easy. But believe me, this isn’t just another case. There are families on the brink of despair—lives at stake. And besides... I need to fix this before it gets any worse. I don’t know who else to trust." "talk">>
<<addDialogue "Casey" "And what are you offering me in return?" "talk">>
<<addDialogue "Mayor Quentin" "I’m offering you a substantial amount, $Mc.baseName. For this is the taxpayer's money. It's a good money, much more than you’ve received before. All I want is for you to solve this damn case. $100,000, what do you say?" "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Accept the money|introPhone3]]">>
<<addDialogue "" "[[I don't want your money|introPhone3B]]">>
<<horizontalEnd>>
<</timed>>
<<showNPC "mayor" "img/characters/mayor/mayor.png" "Mayor Quentin">>
<<unlockCharacterOnly 2>><<dialogue "Casey" "I'm not interested, Quentin. I don't want your money or your case." "talk">>
<<addDialogue "Mayor Quentin" "I understand, but let me offer you something else. If you take this case, I can pull some strings to get your badge back. I assure you that getting you back in the game will be the least of your worries." "talk">>
<<addDialogue "" "Getting my badge back... That really changes things." "thoughts">>
<<addDialogue "Mayor Quentin" "The latest evidence points to the Charles Francis psychiatric hospital on the outskirts of the city. This is serious... Two of my best agents, Dina Carter and Rust Cohle, disappeared while investigating the place. It's as if they vanished into thin air." "talk">>
<<addDialogue "" "I know Cohle, he's one of the good ones, I can't believe he's gone. The last I heard of Rust was that he joined the FBI, and I didn't know he worked directly for the mayor. Dina should be her partner." "thoughts">>
<<addDialogue "Casey" "Charles Francis? That place has been abandoned for over a decade. I didn't think anyone would be interested in it..." "talk">>
<<addDialogue "Mayor Quentin" "I thought the same. But now, I don't know what to believe. Dina and Rust weren’t rookies, they were experienced agents. If they disappeared like this, something's wrong. I don't want to conduct a raid, at least not yet. That would be all over the news." "talk">>
<<addDialogue "" "He's a complete jerk." "thoughts">>
<<addDialogue "Casey" "So, you think the place is involved? Or maybe someone’s playing games with us?" "talk">>
<<addDialogue "Mayor Quentin" "I don't know. But with all these disappearances and no answers, time is running out. The elections are right around the corner. I need someone who can think outside the box. Someone who can get answers where others have failed." "talk">>
<<addDialogue "" "It's clear he's looking for someone expendable... But the truth is, the case has really piqued my interest." "thoughts">>
<<addDialogue "Casey" "I'll take a look at Charles Francis. If Dina and Rust are alive, I'll find them." "talk">>
<<addDialogue "Mayor Quentin" "I knew I could count on you Casey. I’ll send you the files, everything we have on the case, including the raid reports and any other details we’ve gathered. And I won’t forget about the badge, you’ll have it by tomorrow!" "talk">>
<<addDialogue "Casey" "I’ll get started. This won’t be another dead-end." "talk">>
<<addDialogue "Mayor Quentin" "This can’t wait. Do you hear me, Casey? We need you to get moving immediately. And remember, this case has to stay completely under wraps. No one else can know." "talk">>
<<addDialogue "Casey" "I understand..." "talk">>
<<addDialogue "Mayor Quentin" "Don’t let us down." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Hang up the phone|introcase]]">>
<<horizontalEnd>>
<<showNPC "mayor" "img/characters/mayor/mayor.png" "Mayor Quentin">>
<<set $introcase = 1>>
<<set $InvestigatorRoad += 1>><<dialogue "Casey" "Alright, Quentin. You’ve got my attention. I’ll take the case. But you’d better make sure that money’s as good as you say it is, and I want to get my badge back too." "talk">>
<<addDialogue "Mayor Quentin" "You won't regret it. I'm counting on you Casey. If you solve the case, I'll also make sure they return your badge. I've sent you an advance right now to help with the investigation." "talk">>
<<addDialogue "" "That's the way I like it." "thoughts">>
<<addDialogue "Casey" "Let’s get to it then. What exactly are we dealing with here?" "talk">>
<<addDialogue "Mayor Quentin" "The latest evidence points to the Charles Francis psychiatric hospital on the outskirts of the city. This is serious... Two of my best agents, Dina Carter and Rust Cohle, disappeared while investigating the place." "talk">>
<<addDialogue "" "I know Cohle, he's one of the good ones, I can't believe he's gone. The last I heard of Rust was that he joined the FBI, and I didn't know he worked directly for the mayor. Dina should be her partner.." "thoughts">>
<<addDialogue "Casey" "Charles Francis? That place has been abandoned for over a decade. I didn’t think anyone was even interested in it..." "talk">>
<<addDialogue "Mayor Quentin" "I thought the same. But now, I don’t know what to believe. Dina and Rust weren’t rookies—they were experienced agents. If they disappeared like this, something’s wrong. The raid turned up nothing, but I’ve got this gut feeling there’s something hidden there, something we’re not seeing." "talk">>
<<addDialogue "" "What a complete jerk." "thoughts">>
<<addDialogue "Casey" "So you think the place is involved? Or maybe someone’s playing a game?" "talk">>
<<addDialogue "Mayor Quentin" "I don’t know. But with all the disappearances and no answers, we’re running out of time. I need someone who can think outside the box. Someone who can get answers where everyone else has failed." "talk">>
<<addDialogue "Casey" "I’ll take a look. I’m not doing this for the money. If Dina and Rust are still alive, I’ll find them." "talk">>
<<addDialogue "Mayor Quentin" "I knew I could count on you. I’ll get the files to you—everything we have on the case, including the raid reports and any other details we’ve gathered." "talk">>
<<addDialogue "Casey" "Good. I’ll get started. This isn’t going to be another dead end." "talk">>
<<addDialogue "Mayor Quentin" "This can’t wait. Do you hear me? We need you to get moving immediately. And remember, this case has to stay completely under wraps. No one else can know." "talk">>
<<addDialogue "Casey" "I understand..." "talk">>
<<addDialogue "Mayor Quentin" "Don’t let us down." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Hang up the phone|introcase]]">>
<<horizontalEnd>>
<<showNPC "mayor" "img/characters/mayor/mayor.png" "Mayor Quentin">>
<<set $introcase = 1>>
<<set $MoneyElection = 1>>
<<set $InvestigatorRoad -= 1>>
<<set $Corruption += 2>>
<<addMoney 1000 "Added from the Mayor">>
<<dialogue "" "You hear the mayor hangs up before you, and you take hold of the phone, gripping it firmly. Adrenaline begins to course through your veins, awakening a feeling you thought you had forgotten. Perhaps, just perhaps, it’s time to become who you once were, even though the path ahead seems quite murky. You sigh, straighten your shoulders, and focus your mind on what lies ahead." "description">>
<<addDialogue "" "This isn’t going to be easy. But when has it ever been? Two agents missing, a case no one wants to touch, and me... me, seeking redemption. This is straight out of a movie." "thoughts">>
<<addDialogue "" "You walk around the room, trying to clear your thoughts, turning them into words." "description">>
<<addDialogue "Casey" "Charles Francis. Psychiatric hospital. Young women kidnapped. It all points to a hell ahead, but I can’t ignore it. If there’s a chance to fix things, to become who I used to be... then there’s no choice. I have to do this." "talk">>
<<if $Naked is true>>
<<addDialogue "" "You stop in front of the mirror, looking at your naked body, suppressing the urge to continue." "description">>
<<addDialogue "Casey" "I'm afraid the good times are over for now... It's time to focus." "talk">>
<<else>>
<<addDialogue "" "You stop in front of the mirror, staring at your own reflection with a mix of determination and doubt." "description">>
<<addDialogue "Casey" "Are you ready for this? Because no one else seems to be." "talk">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Check the desk|checkdesk]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<horizontalStart>>
<<addDialoguePos "" "[[Go to entrance|introflat2]]">>
<<addDialoguePos "" "[[Go to bathroom|introtoilet]]">>
<<horizontalEnd>>
<<set $notes = 1>>
<<set $introcase = 2>>
<<script>>
addQuestWithStages(
"Departure",
"Check the drawer in your desk at home and gather your essential equipment. You'll need to be properly prepared for what lies ahead, and travel to the Charles Francis Hospital.",
[
"Get your equipment.",
"Travel to Charles Francis Hospital.",
],
"📋",
"main",
"departure", // Custom ID
"img/quest.png" // Quest image
);
// Add stage images so completion notifications show the quest image
if (window.questSystem && window.questSystem.quests["equipament"]) {
window.questSystem.quests["equipament"].stageImages = [
"img/quest.png", // Stage 1
];
}
State.variables.captainQuestId = "equipament";
<</script>><<dialogue "" "You spot a flashlight tucked in the back of the drawer. It's small but sturdy, a good tool for dark places. You grab it, feeling the cool metal surface as you twist the cap to check the batteries. It’s good to go. With both the gun and flashlight in hand, you close the drawer, ready to face what lies ahead." "description">>
<<addDialogue "Casey" "This flashlight will surely come in handy." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Back|introflat]]">>
<<horizontalEnd>>
<<script>>
window.gameState.showLanternRow = true;
const lanternRowEl = document.getElementById('lantern-row');
if (lanternRowEl) {
lanternRowEl.style.visibility = 'visible';
lanternRowEl.style.display = 'flex';
lanternRowEl.classList.remove('slide-hidden');
console.log('Removed slide-hidden class and set visible');
} else {
console.log('ERROR: lantern-row element not found!');
}
<</script>>
<<enableMenu>>
<<script>>
completeQuestStage("departure");
<</script>>
<<if $FlashlightTutorial isnot true>>
<<set $FlashlightTutorial = true>>
<div id="flashlightTutorialModal" class="modal">
<div class="modal-content">
<span class="close-button" onclick="document.getElementById('flashlightTutorialModal').style.display='none'">×</span>
<h2>Flashlight Tutorial</h2>
<p><strong>Goal:</strong> Use the flashlight to improve accuracy in dark areas and discover hidden objects.</p>
<div class="modal-section">
<div class="modal-column">
<strong>Controls:</strong>
<ul>
<li>Click on the flashlight icon in the player menu on the left side of the screen to illuminate dark areas in the game.</li>
<li>The flashlight has limited battery life. You will need batteries to recharge it.</li>
</ul>
</div>
<div class="modal-column">
<strong>Additional Tips:</strong>
<ul>
<li>There are three types of batteries: Cheap, Normal, and Duracell. Each battery type has a different duration, with higher-quality batteries lasting longer.</li>
<li>Using the flashlight will help you discover things in the dark. For example, if you enter a room without light, you won't be able to see or interact with anything unless the flashlight is on (You need to turn on the flashlight and re-enter the room).</li>
<li>Use the flashlight in battles to gain an accuracy bonus when shooting.</li>
<li>Be cautious: the flashlight's light attracts enemies, increasing the chance of encounters.</li>
<li>Manage your batteries carefully, as the flashlight is essential in rooms and hallways with low lighting.</li>
</ul>
</div>
</div>
<div style="text-align: center; margin-top: 20px;">
<button id="continueButtonFlashlight" class="continue-button">Continue</button>
</div>
</div>
</div>
<<script>>
$(document).on(':passagedisplay', function () {
// Show modals if they exist in the DOM
if ($("#combatTutorialModal").length) {
$("#combatTutorialModal").css("display", "flex");
}
if ($("#flashlightTutorialModal").length) {
$("#flashlightTutorialModal").css("display", "flex");
}
// Remove existing click handlers and add new ones
$(document).off("click", "#continueButtonCombat, #continueButtonFlashlight, .close-button").on("click", "#continueButtonCombat, #continueButtonFlashlight, .close-button", function () {
// Close the specific modal based on the button clicked
if ($(this).is("#continueButtonCombat") || $(this).closest("#combatTutorialModal").length) {
$("#combatTutorialModal").css("display", "none");
}
if ($(this).is("#continueButtonFlashlight") || $(this).closest("#flashlightTutorialModal").length) {
$("#flashlightTutorialModal").css("display", "none");
}
});
});
<</script>>
<<timed 300ms>>
<<script>>
playSoundDirect('button.mp3');
<</script>>
<</timed>>
<</if>>
<style>
p {
text-align: center;
color: #e9e9e9;
}
b, strong {
font-weight: 700;
color: #d3bd7b;
}
.modal {
position: fixed;
z-index: 99999999;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgba(0, 0, 0, 0.8);
display: flex;
justify-content: center;
align-items: center;
margin: 0;
padding: 0;
}
.modal-content {
background: rgba(20, 20, 20, 0.9);
border: 3px solid #634d23;
border-radius: 5px;
padding: 20px;
max-width: 600px;
max-height: 80vh;
overflow-y: auto;
color: #d9c27e;
font-family: 'Trajan Pro', 'Times New Roman', serif;
}
.modal-content h2 {
text-align: center;
color: #ffcc00;
position: relative;
top: -2em;
margin-bottom: -2em;
}
.close-button {
color: #ffcc00;
float: right;
font-size: 28px;
font-weight: bold;
cursor: pointer;
position: relative;
top: -1.7em;
}
.modal-section {
display: flex;
flex-wrap: wrap;
}
.modal-column {
flex: 1;
min-width: 290px;
padding: 38px;
margin-bottom: -5em;
margin-top: -3em;
color: #e9e9e9;
}
.modal-content ul {
list-style-type: disc;
padding-left: 20px;
line-height: 1.6;
}
.continue-button {
padding: 10px 20px;
background-color: #3e3423;
color: #d9c27e;
border: 1px solid #634d23;
border-radius: 3px;
cursor: pointer;
font-family: 'Trajan Pro', 'Times New Roman', serif;
font-size: 16px;
transition: all 0.2s;
text-shadow: 1px 1px 1px #000;
}
.continue-button:hover {
background-color: #3e3423;
}
</style>
<<script>>
UIAnimations.showLantern();
<</script>>
<<script>>
UIAnimations.showBatteryQuickslot();
<</script>>
<<set $introgun = true>><<dialogue "" "The scene before you is like a magnet for your senses. You try to look away, but your eyes remain locked, both fascinated and horrified. Each moan scrapes against your nerves like a match striking sandpaper, igniting a fire you shouldn't feel in a place like this. You swallow hard, trying to smother that uncomfortable heat, that misplaced desire that makes you hate yourself a little." "description">>
<<addDialogue "" "This isn't right." "thoughts">>
<<addDialogue "" "But you can't help but look again." "description">>
<<addVideo "media/others/54.mp4" "" "vertical">>
<<horizontalStart>>
<<addDialogue "" "[[Look again|peekintro1]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<<unlockVideo 11 1>> <<addDialogue "" "Finally You shake your head and take a step back, snapping yourself out of the trance as if breaking a spell." "description">>
<<addDialogue "" "I need to leave." "thoughts">>
<<addDialogue "" "With a mix of relief and shame, you turn and quietly head for the exit." "description">>
<<addVideo "media/others/55.mp4" "" "vertical">>
<<horizontalStart>>
<<addDialogue "" "[[Leave stealthily|peekintro2]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<<unlockVideo 11 2>> <<addDialogue "" "You're about to walk away when, suddenly, the moans intensify. Your heart leaps, and you feel a shiver inside. You try to ignore the sound, but you can't; each moan makes you shiver and triggers an unexpected reaction within you. Your mind begins to imagine, but you force yourself to act immediately, determined to leave before anyone sees you." "description">>
<<addDialogue "Casey" "Dammit! Why did I have to go in there?" "talk">>
<<addDialogue "" "I was just checking to see if someone was in danger. Nothing more than that. It was a mistake. I didn't mean to see this..." "thoughts">>
<<addDialogue "" "You step back from the apartment, covering your face with your hands in shame." "description">>
<<addDialogue "" "You shake your head, trying to clear the image from your mind as you take a few trembling breaths. You then exit the apartment and leave your neighbors behind, forgetting to close the ajar door." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Exit|introstreet]]">>
<<horizontalEnd>>
<<dialogue "Casey" "Hey, Gabi." "talk">>
<<addDialogue "Gabriela Rodriguez" "It’s been a while since we’ve had coffee, huh? I thought today would be a good day to catch up, maybe take a walk. How’s everything going with you?" "talk">>
<<addDialogue "Casey" "But it’s only been three days since we last saw each other, did you already miss me that much?" "talk">>
<<addDialogue "Gabriela Rodriguez" "Alright, alright! I may have exaggerated a bit, but honestly, coffee with you is never too much. Although, I’ll admit I’ve been thinking we should go out more often. Once a week isn’t enough." "talk">>
<<addDialogue "" "You can’t help but smile at her energy, but something inside you tells you that this conversation won’t be as light as it seems." "description">>
<<addDialogue "Casey" "I’m not going to lie, I could really use more time for us. Work doesn’t give me a break." "talk">>
<<addDialogue "Gabriela Rodriguez" "You can say that again! I just closed a complicated case, but now... I’ve found out that women are disappearing around the city. And you know, I’ve always been curious about those kinds of cases. I want them to assign me the investigation. It’s exactly the type of work I enjoy." "talk">>
<<addDialogue "" "You tense up for a moment. You know that’s the case you’ve been assigned to, but you can’t tell her anything. Not yet. The verbal confidentiality agreement with Mayor Quentin prevents you from doing so. You try to stay calm as you listen to her." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Respond vaguely|FriendGabiNoLie]]">>
<<horizontalEnd>>
<<showNPC "rodriguez" "img/characters/rodriguez/gabriela2.png" "Gabriela Rodriguez">>
<<unlockPhoto 3 3>> <<dialogue "Gabriela Rodriguez" "So you're here. I thought you had disappeared forever." "talk">>
<<addDialogue "Casey" "I don't have time to talk, Gabriela." "talk">>
<<addDialogue "" "Gabriela furrows her brow, surprised by the coldness. Her concern is obvious, but you keep moving forward. Gabriela follows you with her gaze, more uneasy than she lets on. She can't help but notice that you're agitated, in a hurry." "description">>
<<addDialogue "Gabriela Rodriguez" "Where are you going so fast? I haven't seen you in two years, and now, suddenly, I see you leaving like this... What's going on, Casey?" "talk">>
<<addDialogue "" "Her voice is softer, as if unsure how to approach the topic, but it's clear something is bothering her about the way you're acting." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Keep your distance|introgabinofriend1]] [[Reveal a little|introgabinofriend2]]">>
<<horizontalEnd>>
<<if $CaseyCoat is true>>
<<setAvatarDirect "casey1.png">>
<</if>>
<<showNPC "rodriguez" "img/characters/rodriguez/gabriela.png" "Gabriela Rodriguez">>
<<unlockPhoto 3 2>> <<dialogue "Casey" "It's nothing important. I don't have time to talk." "talk">>
<<addDialogue "" "Gabriela takes a step towards you, clearly worried, but you keep walking without stopping. She doesn't seem willing to let you go so easily. Her face shows concern, but she doesn't know how to make you stop and explain. The anguish is clear in her voice." "description">>
<<addDialogue "Gabriela Rodriguez" "Casey, please! I was worried... And now I see you, running as if you're running from something." "talk">>>
<<addDialogue "" "She knows something is wrong, but has no idea what it is." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Lie|LieToGabi]] [[Be evasive|NoLieToGabi]]">>
<<horizontalEnd>>
<<showNPC "rodriguez" "img/characters/rodriguez/gabriela.png" "Gabriela Rodriguez">><<dialogue "Casey" " I have work, Gabriela. The case I'm talking about is complicated." "talk">>
<<addDialogue "" "Gabriela looks at you intently, as if searching for more details, but doesn't get any further information. Her face shows concern, but she doesn't know how to make you stop and explain." "description">>
<<addDialogue "Gabriela Rodriguez" "Casey, please, what's going on? I was worried... And now I see you, running as if you're running from something." "talk">>
<<addDialogue "Casey" " Worried? And why haven't I heard from you all this time?" "talk">>
<<addDialogue "Gabriela Rodriguez" "Come on, Casey! I was mad at you, and you didn’t even say goodbye to me. That hurt, you know?" "talk">>
<<addDialogue "" "She knows something is wrong, but has no idea what it is." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Lie|LieToGabi]] [[Be evasive|NoLieToGabi]]">>
<<horizontalEnd>>
<<showNPC "rodriguez" "img/characters/rodriguez/gabriela1.png" "Gabriela Rodriguez">>
<<dialogue "Casey" " Well, I’m sure someone competent will end up taking the case. The city can’t afford to leave something like this unresolved." "talk">>
<<addDialogue "" "Gabriela frowns slightly, studying you, as if trying to read between the lines of what you just said." "description">>
<<addDialogue "Gabriela Rodriguez" "Someone competent, huh? Who? You?" "talk">>
<<addDialogue "Casey" " I’m just saying don’t worry so much. I’m sure everything will turn out fine." "talk">>
<<addDialogue "Gabriela Rodriguez" "Relax, its just a joke. You know what? How about we grab a coffee? You say there’s nothing going on, but your face says otherwise. Maybe talking for a while will help you relax." "talk">>
<<addDialogue "Casey" " I appreciate it, Gabi, but I can't. I'm in a hurry, got a pending case. You know how it is. I can't stay and chat right now. Besides, it's a bit late for coffee." "talk">>
<<addDialogue "Gabriela Rodriguez" "Really? If there's one thing I've learned from you, it's that it's never too late for coffee... even just for a little while? Not everything in life has to be work." "talk">>
<<addDialogue "Casey" " I know, but it’s not that simple. We’ll talk another day, I promise. Right now, I have to go." "talk">>
<<addDialogue "Gabriela Rodriguez" "Are you that busy? Aren’t you going to tell me anything about the case? Come on, Casey, you know I’m interested. What are you investigating this time? Who has you so caught up?" "talk">>
<<horizontalStart>>
<<addDialogue "" "[[We will be partners again|introgabifriendend2]]">>
<<horizontalEnd>>
<<showNPC "rodriguez" "img/characters/rodriguez/gabriela.png" "Gabriela Rodriguez">>
<<dialogue "Casey" " I just need to sort something out. Nothing serious." "talk">>
<<addDialogue "" "She has a radar for my lies, as if she can see them before they even leave my mouth." "thoughts">>
<<addDialogue "" "Gabriela stares at you intently, but something in her face shows that she still doesn’t believe what you’ve told her." "description">>
<<addDialogue "Gabriela Rodriguez" "I know you, Casey. And I can tell when you're trying to hide something. I don’t like your silences. Why don’t you tell me what’s going on?" "talk">>
<<addDialogue "" "Her words are honest, full of concern. But you feel the weight of the mayor’s recent call. Gabriela doesn’t know anything about it, and you can’t tell her." "description">>
<<addDialogue "" "I need to be direct with her." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Be direct|introgabinofriendend]]">>
<<horizontalEnd>>
<<showNPC "rodriguez" "img/characters/rodriguez/gabriela.png" "Gabriela Rodriguez">>
<<dialogue "Casey" " I can’t tell you more. It’s complicated." "talk">>
<<addDialogue "" "Gabriela stares at you intensely, her eyes filled with determination. She crosses her arms, a look of frustration on her face. She’s not going to let this go so easily." "description">>
<<addDialogue "Gabriela Rodriguez" "Complicated? Don't do this to me, Casey! It's been two years. Two years without knowing anything about you, and now that I finally find you, I can't even understand what you're doing. You're running from something, I know it. But if you keep pushing me away, I won’t be able to help you!" "talk">>
<<addDialogue "" "I need to be direct with her." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Be direct|introgabinofriendend]]">>
<<horizontalEnd>>
<<showNPC "rodriguez" "img/characters/rodriguez/gabriela.png" "Gabriela Rodriguez">><<dialogue "Casey" "Look, I can't stay here. I have to go solve a case. It's all I can tell you. If I could, I would, but I can't." "talk">>
<<addDialogue "" "Gabriela falls silent, her face filled with doubt. But she doesn’t let you walk away so easily." "description">>
<<addDialogue "Gabriela Rodriguez" "I’m not going to sit here knowing you’re about to face something dangerous alone. Let me go with you. You know I’ve always been there when you need me, right?" "talk">>
<<addDialogue "Casey" " I can't, Gabi. I can't take you with me. This case is... complicated. More than you think." "talk">>
<<addDialogue "Gabriela Rodriguez" "I’ve known you for years, you know I’m not just going to sit here and do nothing. If you don’t tell me, I’ll figure it out on my own." "talk">>
<<addDialogue "" "You feel the weight of Gabriela’s insistence, but you know you can’t tell her anything. You look at your former partner, seeing a flash of nostalgia in her eyes, and then respond in a soft tone." "description">>
<<horizontalStart>>
<<addDialogue "" "[[We will be partners again|introgabinofriendend2]]">>
<<horizontalEnd>>
<<showNPC "rodriguez" "img/characters/rodriguez/gabriela.png" "Gabriela Rodriguez">><<dialogue "Casey" " If I solve this case... I’ll get my badge back. I’ll rejoin the Detective unit, and we’ll have time to talk, to discuss everything you want. I’ll listen to every word, every reproach, everything you need to say to me. But right now, I can’t stay. I have to go. The case can’t wait. Understand that if I want to solve it, I need to act fast." "talk">>
<<addDialogue "Gabriela Rodriguez" "Are you saying you can get your badge back if you solve this case? What are you doing, Casey? This sounds like something much bigger than just a simple case. Are you being used by someone? Are they pushing you into this?" "talk">>
<<addDialogue "" "Her tone is incredulous, almost indignant, but her expression hardens, the concern turning into distrust. As a Detective, she knows that when something smells wrong, you need to act fast, and she doesn’t like how all of this sounds." "description">>
<<addDialogue "Gabriela Rodriguez" "I know you want to get your life back, but you can’t let them deceive you. I don’t want to see you in the middle of a disaster again, in something you can’t control. This doesn’t feel right, and I’m sure it doesn’t feel right to you either, does it?" "talk">>
<<addDialogue "Casey" " It’s not what you think, Gabi. I have to do this, there’s no other option. If I don’t solve this case, I won’t get another chance. When it’s over, we can talk, but right now, I can’t waste any more time." "talk">>
<<addDialogue "" "You continue walking towards your car, your steps resolute. Gabriela watches you in silence, the worry clear on her face, but she knows you’ve already made your decision. There’s no turning back." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Get in the car|introcar]]">>
<<horizontalEnd>>
<<showNPC "rodriguez" "img/characters/rodriguez/goodbye.png" "Gabriela Rodriguez">>
<<if $CaseyCoat is true>>
<<setAvatarDirect "caseycoat.png">>
<</if>>
<<unlockPhoto 3 4>>
<<dialogue "" "What the hell was Gabriela doing at my doorstep after two years? Does she really care about me now? I know her well, I know she does, but… why does it have to be now, just when I need to focus the most?" "thoughts">>
<<addDialogue "Casey" " Phew..." "talk">>
<<addDialogue "" "I have to keep going." "thoughts">>
<<addDialogue "" "You get in the car, the roar of the engine filling the silence as you turn the key. The weight of the situation presses down on you, but there’s no time to stop and think about it. No time for doubt." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Let's get going|Intro-Start]]">>
<<horizontalEnd>>
<<script>>
stopAllMusic();
<</script>>
<<timed 4s>>
<div class="titles">
<div class="title"></div>
<div id="title1"></div>
</div>
<div id="Menubutton">[[Continue|introllegada1]]</div>
<</timed>>
<<set $bag = 0>>
<<set $IntroComplete = true>>
<<script>>
setTimeout(() => {
audioSystemCrossfade('caseydescent.mp3', 500);
}, 1000);
<</script>>
<<script>>
hideCharacterMenu();
<</script>>
<<script>>
const slideshowContainer = document.createElement('div');
slideshowContainer.id = 'second-slideshow-container';
slideshowContainer.style.cssText = `
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: -1;
`;
document.body.appendChild(slideshowContainer);
const newImages = [
'media/events/caseytrip/uno.png',
'media/events/caseytrip/dos.png',
'media/events/caseytrip/tres.gif',
'media/events/caseytrip/cuatro.png',
'media/events/caseytrip/cinco.png',
'media/events/caseytrip/seis.png',
'media/events/caseytrip/siete.png',
'media/events/caseytrip/ocho.png',
'media/events/caseytrip/nueve.gif',
'media/events/caseytrip/diez.png',
'media/events/caseytrip/once.png',
'media/events/caseytrip/doce.png',
'media/events/caseytrip/trece.png',
'media/events/caseytrip/last.gif',
'img/backgrounds/intro1.png'
];
window.SlideshowSystem.create('second-slideshow', newImages, {
interval: 8000,
loop: true,
fadeTransition: true,
fadeDuration: 1000,
autoStart: true,
target: '#second-slideshow-container'
});
<</script>>
<style>
#Menubutton {
display: flex;
justify-content: center;
align-items: center;
position: fixed;
top: 65%;
left: 50%;
transform: translate(-50%, 25%);
width: 80vw;
max-width: 350px;
min-width: 120px;
padding: 1rem;
color: #e0e0e0;
text-align: center;
font-family: 'Cinzel', 'Georgia', serif;
font-size: clamp(18px, 5vw, 22px);
text-transform: uppercase;
letter-spacing: 1.5px;
z-index: 1000;
}
a:not([href*="introA"]):not(#save-button):not(.menu-button):not(.battle-button):not(.inventory-quickslot):not(.phone-button) {
color: rgb(212, 175, 55) !important;
text-decoration: none !important;
transition: all 0.3s ease !important;
border: 2px solid rgb(139, 105, 20) !important;
border-radius: 8px !important;
padding: 0.5em 1em !important;
width: auto !important;
text-align: center !important;
font-weight: bold !important;
box-shadow: 0 0 10px rgba(236, 188, 242, 0.5);
backdrop-filter: blur(5px);
}
a:not([href*="introA"]):not(#save-button):not(.menu-button):not(.battle-button):not(.inventory-quickslot):not(.phone-button):hover {
color: rgb(212, 175, 55) !important;
text-shadow: 0 0 8px rgba(255, 102, 102, 0.8), 0 0 12px rgba(255, 102, 102, 0.5);
border: 2px solid rgb(255, 215, 0) !important;
box-shadow: 0 0 15px rgba(255, 102, 102, 0.8), 0 0 25px rgba(255, 102, 102, 0.5);
transform: scale(1.05) !important;
}
@font-face {
font-family: 'personal-services';
src: url('path/to/personal-services.woff2') format('woff2'),
url('path/to/personal-services.woff') format('woff');
font-weight: normal;
font-style: normal;
}
#ui-bar, #character-menu, .stat-row, #name {
display: none;
}
#story {
display: flex;
flex-direction: column;
justify-content: flex-start;
align-items: center;
min-height: 100vh;
margin: 0 !important;
padding: 0 !important;
box-sizing: border-box;
}
.titles {
position: absolute;
top: 1vh;
left: 50%;
transform: translateX(-50%);
z-index: 1;
}
.title {
background-image: url(img/title.png);
background-size: contain;
background-repeat: no-repeat;
background-position: center;
width: 100vw;
max-width: 50rem;
height: 35vh;
margin: 0 auto !important;
padding: 0 !important;
z-index: 1;
}
#title1 {
background-image: url(img/title1.png);
background-size: contain;
background-repeat: no-repeat;
background-position: center;
width: 50vw;
max-width: 25rem;
height: 7vh;
margin: 0 auto !important;
padding: 0 !important;
animation: subwoofer-pump 2s cubic-bezier(0.455, 0.03, 0.515, 0.955) infinite;
transform-origin: center center;
z-index: 1;
position: relative;
top: -8.5vh;
}
@keyframes subwoofer-pump {
0% { transform: scale(1); }
20% { transform: scale(1.05); }
40% { transform: scale(0.98); }
60% { transform: scale(1.03); }
80% { transform: scale(0.99); }
100% { transform: scale(1); }
}
@media screen and (max-width: 768px) {
.title {
height: 37vh;
width: 95vw;
}
#title1 {
height: 8vh;
width: 50vw;
top: -13vh;
}
}
@media screen and (max-width: 480px) {
.titles {
top: 2vh;*
}
.title {
height: 20vh;
width: 100vw;
}
#title1 {
height: 4vh;
width: 55vw;
top: -5.5vh;
}
}
@media (orientation: landscape) and (max-height: 600px) {
.title {
transform: scale(1.375) !important;
transform-origin: center !important;
overflow: visible !important;
z-index: 10 !important;
}
}
@media (orientation: landscape) and (max-height: 600px) {
html body #title1, body #title1, #title1 {
transform: scale(1.375) !important;
transform-origin: center !important;
overflow: visible !important;
z-index: 10 !important;
}
}
</style>
<div class="control-buttons">
<div class="control-btn" id="menu-fullscreen-btn" title="Toggle Fullscreen">⛶</div>
</div>
<<script>>
$(document).ready(function() {
$('#menu-fullscreen-btn').on('click', function(e) {
e.preventDefault();
e.stopPropagation();
console.log('Menu fullscreen button clicked'); // Debug
try {
if (document.fullscreenElement) {
console.log('Exiting fullscreen'); // Debug
document.exitFullscreen();
} else {
console.log('Entering fullscreen'); // Debug
document.documentElement.requestFullscreen();
}
} catch (error) {
console.error('Fullscreen error:', error);
}
});
// Update fullscreen button icon on fullscreen change
$(document).on('fullscreenchange', function() {
console.log('Fullscreen state changed:', document.fullscreenElement ? 'ON' : 'OFF'); // Debug
// Aquí puedes cambiar el icono del botón si quieres
// $('#menu-fullscreen-btn').text(document.fullscreenElement ? '⛶' : '⛶');
});
});
<</script>>
<style>
.control-buttons {
position: fixed;
top: 0px;
left: 15px;
display: flex;
flex-direction: column;
gap: 1px;
z-index: 100000000 !important;
}
.control-btn {
width: 25px;
height: 25px;
background: rgba(20, 20, 20, 0.8);
border: 2px solid #d9c27e;
border-radius: 8px;
display: flex;
justify-content: center;
align-items: center;
font-size: 12px;
color: #d9c27e;
cursor: pointer;
transition: all 0.3s ease;
user-select: none;
box-shadow: 0 0 10px rgba(217, 194, 126, 0.2);
}
.control-btn:hover {
background: rgba(40, 40, 40, 0.9);
box-shadow: 0 0 15px rgba(217, 194, 126, 0.4);
transform: scale(1.05);
}
.control-btn:active {
transform: scale(0.95);
}
@media screen and (max-width: 768px) {
.control-btn {
width: 22px;
height: 22px;
font-size: 10px;
}
.control-buttons {
top: -18px;
left: 9px;
gap: 0px;
}
}
@media screen and (max-width: 768px) {
.control-btn {
width: 22px;
height: 22px;
font-size: 10px;
}
.control-buttons {
top: -18px;
left: 9px;
gap: 0px;
}
}
@media screen and (max-width: 480px) {
.control-btn {
width: 20px;
height: 20px;
font-size: 9px;
}
.control-buttons {
top: -20px;
left: 10px;
gap: 0px;
}
}
</style><<dialogue "" "You want to tell her, but you feel the weight of the mayor’s recent call. Gabriela doesn’t know anything about it, and you can’t tell her." "description">>
<<addDialogue "Casey" "I can't tell you much, Gabi. It's confidential. But... if everything goes well, I'll get my badge back. And when that happens, we’ll be working together again. I promise." "talk">>
<<addDialogue "Gabriela Rodriguez" "Are you sure you’re not on the case? Because, I don’t know, Casey… It’s not that I like to be suspicious, but all of this sounds really strange." "talk">>
<<addDialogue "Casey" "Gabi, I told you, I can’t tell you anything. It’s confidential." "talk">>
<<addDialogue "Gabriela Rodriguez" "‘Trust me,’ you say… How do you expect me to trust you if you won’t tell me anything? Casey, we’re talking about missing women. If you know something, tell me. We could solve this together." "talk">>
<<addDialogue "Casey" " I can’t, Gabi. The mayor has asked for total confidentiality. There’ll be time to talk, I promise you. But right now, I have to go." "talk">>
<<addDialogue "" "Gabriela’s eyes widen in surprise, her brow furrowing instantly as she processes your words." "description">>
<<addDialogue "" "Shit, I let it slip!" "thoughts">>
<<addDialogue "Gabriela Rodriguez" "The mayor? What the hell do you have to do with the mayor in all this? Casey!" "talk">>
<<addDialogue "Casey" "Gabi, don’t start overthinking it. I can’t tell you anything else, alright? Just... trust me. When all of this is over, I’ll explain everything." "talk">>
<<addDialogue "Gabriela Rodriguez" "I don’t like this, Casey. If the mayor is involved, it means this is no ordinary case. And if he’s asked you... Just tell me one thing: are you taking care of yourself? Because I don’t want to find out that you’re getting into something you can’t handle." "talk">>
<<addDialogue "Casey" "I’m fine, Gabi. I can handle it. But now, seriously, I have to go." "talk">>
<<addDialogue "" "Gabriela watches you for a few more seconds, clearly dissatisfied with your answers, but she nods with a mix of resignation and concern.">>
<<addDialogue "Gabriela Rodriguez" "Alright, go. But listen to me, Casey: if you need help, don’t hesitate to ask. No matter what it is. Understood?" "talk">>
<<addDialogue "Casey" "Okey, Gabi..." "talk">>
<<addDialogue "" "You turn halfway and you start walking towards your car, still feeling the weight of Gabriela’s gaze on you. You know she won’t rest. Not with that sharp instinct of hers for spotting trouble.">>
<<addDialogue "Gabriela Rodriguez" "Be careful, Casey." "talk">>
<<addDialogue "" "It feels so good to have a friend like you, someone I can count on. I wish I could tell you everything. But I can't. Not yet." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Get in the car|introcar2]]">>
<<horizontalEnd>>
<<showNPC "rodriguez" "img/characters/rodriguez/gabriela.png" "Gabriela Rodriguez">>
<<dialogue "" "You get into the car, start the engine, and the sound reminds you that there’s no turning back. The mayor is waiting, and with him, the case that could change your future." "description">>
<<addDialogue "" "It’s strange how things have changed. Before, I used to share everything with Gabriela: the cases, the worries, the little jokes that eased the tension of the heaviest days. It’ll be like it was before, once I get my badge back." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Let's get going|Intro-Start]]">>
<<horizontalEnd>>
<<script>>
stopAllMusic();
<</script>>
<<showNPC "home" "img/characters/doctor/dochome.png" "Dr. Arklich Home">>
<<dialogue "" "
<<addDialogue "Gabriela" "
<<addDialogue "" "
<<addDialogue "Casey" "
" "talk">>
" "description">>
" "thoughts">>
<<timed 100ms>>
<<vdialogue "Gabriela" "$McName, when I saw you enter, I thought you weren't going to talk to me..." "talk">>
//To the end of passage
<</timed>>
<<horizontalStart>>
<<addDialogue "" "[[Computer|introsave]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|MainLobby]]" "center">>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>><<timed 2s>>
<<dialogue "" "After more than two hours of driving, the journey has become long and monotonous. The sun begins to set as you leave the city behind, venturing into a more desolate landscape. The air in the car feels heavy, and the lonely roads seem to stretch endlessly. Finally, you reach the old parking lot of the psychiatric hospital. The worn asphalt creaks beneath the tires as you move forward, and in the distance, you see several abandoned cars scattered across the area." "description">>
<<addDialogue "" "You park in one of the empty spaces near the entrance, right next to one of the abandoned cars." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Get out of the car|parkingintro]]">>
<<horizontalEnd>>
<</timed>>
<<set $introcase = 3>>
<<script>>
window.CharacterMenuControl.show()
<</script>>
<<script>>
completeQuestStage("departure");
<</script>>
<<script>>
// Remove slideshow container
const slideshowContainer = document.getElementById('second-slideshow-container');
if (slideshowContainer) {
slideshowContainer.remove();
console.log('🗑 Removed slideshow container');
}
// Stop slideshow
if (window.SlideshowSystem) {
window.SlideshowSystem.stop('second-slideshow');
}
<</script>>
<<script>>
setTimeout(() => {
audioSystemCrossfade('lobbytheme.mp3', 3000);
}, 1000);
<</script>>
<<set $bag = 1>>
<<set $inside = true>>
<<set $Arrive = true>><<dialogue "" "You step out of the car, the sound of the door closing echoing in the empty parking lot. You remain still for a few moments, observing the psychiatric hospital, whose presence feels even more intimidating now that you’re outside the vehicle. The daylight slowly fades, giving way to the impending night. The parking lot is deserted, with several abandoned cars scattered around, covered in dust and rust. As the darkness advances, an uneasy feeling begins to weigh on you. Everything seems immersed in an eerie silence, and the stillness of the scene contrasts with the bad feeling creeping over you." "description">>
<<addDialogue "Casey" " Great, another night of work... And this makes three in a row lost because of that damn cat. Once again, I have to spend the whole day sleeping." "talk">>
<<addDialogue "" "The wind stirs some dry leaves on the ground, making a sound that causes you to glance again, hoping to see nothing more than shadows. The atmosphere feels oppressive, as though the very place is watching you." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Let's go|Parking]]">>
<<horizontalEnd>>
<<script>>
addQuestWithStages(
"Case",
"Investigate the Charles Francis Mental Hospital thoroughly. Search for any clues that might shed light on the kidnapping case and help you piece together what's really happening.",
[
"Enter in the building",
],
"📋",
"main",
"first_quest", // Custom ID
"img/quest.png" // Quest image
);
// Add stage images so completion notifications show the quest image
if (window.questSystem && window.questSystem.quests["first_quest"]) {
window.questSystem.quests["first_quest"].stageImages = [
"img/quest.png", // Stage 1
];
}
State.variables.captainQuestId = "first_quest";
<</script>>
<<script>>
window.setLighting(80);
<</script>><<dialogue "" "The painted lines have almost vanished beneath the dirt and cracks in the asphalt. A couple of broken streetlights stand like silent specters, their shattered glass reflecting the faint glow of the moon." "description">>
<<addDialogue "" "Near the edge of the road, an old wooden post holds a weathered map, its surface peeling and torn—too faded to read any clear directions." "description">>
<<if $carquest gte 1 && $FBIcar isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Check your car|YourCarParking]]">>
<<addDialogue "" "[[Check abandoned car|Carparking]]">>
<<horizontalEnd>>
<</if>>
<<if $maindoorclosed is true>>
<<horizontalStart>>
<<addDialogue "" "[[Other side of the parking|Parking2]]">>
<<addDialogue "" "[[Go to entrance|noenter]]">>
<<addDialogue "" "[[Road to lake|Camino-derecha]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Other side of the parking|Parking2]]">>
<<addDialogue "" "[[Go to entrance|PsiquiatricEntrance]]">>
<<addDialogue "" "[[Road to lake|Camino-derecha]]">>
<<horizontalEnd>>
<</if>>
<<goto "Forest">>
<<set $Fwolf = 0>><<set $bwfight = 2>>
<<set $bwinfight = true>>
<<script>>
completeQuestStage("Entry");
<</script>>
<<goto "Saveroom">>
<<goto "Forest">>
<<set $Fdiabolicwolf = 0>><<set $bwfight2 = 2>>
<<set $bwinfight2 = true>>
<<set $patientcome = 0>>
<<goto "Saveroom">><<set $srcff = 2>>
<<goto "SRcorridor">>
<<set $Sroom2 = 2>>
<<set $fapperisgone = true>>
<<goto "SRoom2">>
<<set $cavefight = 2>>
<<goto "Caveoutside">><<set $wolfcave = 2>>
<<goto "Cave2">><<dialogue "" "The wolf lies on the ground, its body motionless, the threat it posed now extinguished. With its fall, the echoes of growls and the stealthy movements of the other wolves vanish, leaving the cave in an eerie silence." "description">>
<<addDialogue "" "The darkness feels less oppressive, though still heavy with mystery. The cave, once dominated by the beasts, is now free of their presence." "description">>
<<addDialogue "" "For a moment, only the sound of your breath breaks the silence. You've accomplished something, but a sense of unease still lingers." "description">>
<<addDialogue "Casey" " Well... looks like this place is finally free of threats." "talk">>
<<addDialogue "" "Not that I can call it a perfect refuge. But at least, for now... it seems safe." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Examine remains|Examinecave]]">>
<<horizontalEnd>>
<<set $diabolicwolfcave = 2>>
<<set $SafePlaceCave = true>>
<<dialogue "" "The body twitches one last time before collapsing to the floor with a dull thud. A heavy silence fills the air, broken only by your ragged breath." "description">>
<<addDialogue "" "I can't stay here..." "thoughts">>
<<addDialogue "Casey" "I have to keep going, even... God, this is getting worse." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|Main Hallway3]]">>
<<horizontalEnd>>
<<set $MHenemy = true>>
<<set $MHfight = 2>><<set $Fdiabolicwolf = 0>>
<<goto "Forest">><<dialogue "" "The demon collapses before you, its dark figure slowly fading into shadows absorbed by the air. The room, once filled with a malevolent presence, now feels calmer, as if the dark weight has been lifted." "description">>
The reflections in the mirrors return to normal, showing your image without distortions or hidden secrets. For a moment, you breathe easier, though you know this might only be a temporary respite in this nightmare." "description">>
<<addDialogue "Casey" "I still can’t believe this is real..." "talk">>
<<addDialogue "" "Or maybe I already was..." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|mirrors2]]">>
<<horizontalEnd>>
<<set $mirrorDemon = true>><<set $Fwolf = 0>>
<<goto "Forest">>
<<set $bwfight = 0>>
<<goto "Camino-izquierda">><<set $bwfight2 = 0>>
<<goto "Camino-izquierda">>
<<dialogue "" "You crouch down, observing the wolf's remains. Its body lies motionless on the ground. Dark fur covers much of its form, and a light layer of dirt and blood has accumulated on it. Something catches your attention in the remains—something shiny within its throat." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Reach in|bcard]]">>
<<horizontalEnd>>
<<set $safecave = true>><<if $openleftdoor isnot true>>
<<dialogue "" "The lights flicker erratically, their glow wavering as if on the verge of completely going out. Each flash casts shadows that slide and stretch along the passage, moving with an unsettling fluidity, as if they had a life of their own." "description">>
<<else>>
<<dialogue "" "The lights are off, leaving the hallway in a faint gloom. The little light that filters in from the outside barely reveals the outlines of the walls and floor, casting vague shadows that stretch and shift subtly with each step." "description">>
<</if>>
<<if $MCDopen isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Check front door|corridorlobbyclosed]]">>
<<horizontalEnd>>
<</if>>
<<horizontalStart>>
<<if $MCDopen is true>>
<<addDialogue "" "[[Grand Hall]]">>
<</if>>
<<addDialogue "" "[[Go to entrance|Main Hallway2]]">>
<<horizontalEnd>>
<<if $maindooropen is true && $MHenemy isnot true && $MHfight isnot 2>>
<<goto "runenemy">>
<</if>><<dialogue "" "This corridor remains closed… for now. Perhaps in the future, new opportunities will unfold. Your support helps bring those moments closer. Thank you for being part of this story." "description">>
<div id="sup">
<a href="https://www.patreon.com/Rustlergame" target="_blank" style="display: inline-block; background-color: #F96854; color: white; padding: 10px 20px; text-decoration: none; border-radius: 4px; font-weight: bold;">Support me on Patreon</a>
</div>
<<addDialoguePos "" "[[Back|MainLobby]]" "center">><<set $srcsf = 0>>
<<goto "SRcorridor2">><<set $srcff = 0>>
<<goto "SRcorridor">><<addDialogue "" "You barely manage to escape the wolves, adrenaline fueling your every step. They don’t pursue you—instead, they remain at the cave’s entrance, standing their ground, as if warning you to never return." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|Caveoutside]]">>
<<horizontalEnd>>
<<set $wolfcave = 0>>
<<dialogue "" "You run without looking back, the echo of your footsteps resounding through the cave. You can feel its presence lurking, its gaze burning into your back, but it doesn’t chase you." "description">>
<<addDialogue "" "When you finally emerge from the tunnel, you stop, gasping for breath. You turn toward the darkness, and there it is—motionless at the entrance, its red eyes glowing like embers." "description">>
<<addDialogue "" "It doesn’t cross the threshold. It doesn’t follow you." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|Caveoutside]]">>
<<horizontalEnd>>
<<set $diabolicwolfcave = 0>><<dialogue "" "The guy doesn't chase you and returns to his corner." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|SRcorridor1]]">>
<<horizontalEnd>>
<<set $Sroom2 = 0>><<set $cavefight = 0>>
<<goto "Forest">><<if window.gameState.lanternOn>>
<<goto "SRcorridor1Light">>
<<else>>
<<dialogue "" "You stop in the middle of the hallway. Ahead of you, two open doors lead into dark rooms on either side. One to the left, the other to the right, both shrouded in an unsettling darkness." "description">>
<<if $leftroom1 isnot true && $leftroom2 isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Right Door|SDoor2]]">>
<<addDialogue "" "[[Left Door|SDoor1]]">>
<<horizontalEnd>>
<<elseif $leftroom1 isnot true && $leftroom2 is true>>
<<horizontalStart>>
<<addDialogue "" "[[Left Door|SDoor1]]">>
<<horizontalEnd>>
<<elseif $leftroom1 is true && $leftroom2 isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Right Door|SDoor2]]">>
<<horizontalEnd>>
<</if>>\
<<if $leftroom1 is true && $leftroom2 is true>>
<<horizontalStart>>
<<addDialogue "" "[[Left Room|SRoom1]]">>
<<addDialogue "" "[[Go to small office|SRcorridor]]">>
<<addDialogue "" "[[Go to next hallway|SRcorridor2]]">>
<<addDialogue "" "[[Right Room|SRoom2]]">>
<<horizontalEnd>>
<<elseif $leftroom1 isnot true && $leftroom2 is true>>
<<horizontalStart>>
<<addDialogue "" "[[Go to small office|SRcorridor]]">>
<<addDialogue "" "[[Go to next hallway|SRcorridor2]]">>
<<addDialogue "" "[[Right Room|SRoom2]]">>
<<horizontalEnd>>
<<elseif $leftroom1 is true && $leftroom2 isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Left Room|SRoom1]]">>
<<addDialogue "" "[[Go to small office|SRcorridor]]">>
<<addDialogue "" "[[Go to next hallway|SRcorridor2]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Go to small office|SRcorridor]]">>
<<addDialogue "" "[[Go to next hallway|SRcorridor2]]">>
<<horizontalEnd>>
<</if>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<<set $srhallway = true>>
<<if $SafePlaceCave isnot true>>
<<dialogue "" "You stand at the entrance of the cave, a dark fissure in the rock exhaling cold, heavy air. The silence is almost absolute, broken only by the wind whistling through the stones. Something inside seems to be watching you, waiting." "description">>
<<else>>
<<dialogue "" "You stand at the entrance of the cave, a dark fissure in the rock exhaling cold, heavy air. The silence is almost absolute, broken only by the wind whistling through the stones." "description">>
<</if>>
<<if $cavefight is 2>>
<<if window.gameState.lanternOn>>
<<horizontalStart>>
<<addDialogue "" "[[Enter in the cave|Cavelight]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Enter in the cave|CaveNoenter]]">>
<<horizontalEnd>>
<</if>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Enter in the cave|ForestCave]]">>
<<horizontalEnd>>
<</if>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back to path|Forest]]" "center">>
<<script>>
window.setLighting(60);
<</script>>
<<dialogue "" "Your car is parked, waiting for the moment to leave the place." "description">>
<<addImage "img/events/caseycar.png">>
<<horizontalStart>>
<<addDialogue "" "[[Back|Parking]]">>
<<horizontalEnd>>
<<if $EndAberrationEvent is true>>
<<goto "YourCar2Parking">>
<</if>>
<<dialogue "" "The car is clearly abandoned. The body, covered in dust, and the broken windows suggest it’s been here for a long time. No one has been near it for quite a while." "description">>
<<switch visited()>>
<<case 1>>
<<addDialogue "Casey" " There's nothing that can be done with this." "talk">>
<</switch>>
<<addImage "img/events/car.png">>
<<horizontalStart>>
<<addDialogue "" "[[Back|Parking]]">>
<<horizontalEnd>>
<<dialogue "" "This part of the parking lot stretches into a secluded corner, lying in silence under the night. A few old, rusted vehicles stand like motionless shadows, consumed by time. A narrow path extends from here, skirting the building to the left before vanishing into the depths of the forest. The wind howls in this area, dragging dry leaves across the cracked asphalt, breaking the unsettling silence." "description">>
<<if $carquest gte 1 && $FBIcar isnot true>>
<<if $fbicarchek is true>>
<<horizontalStart>>
<<addDialogue "" "[[Check FBI's car|CarBlackCheck]]">>
<<addDialogue "" "[[Check abandoned car|CarGreyCheck]]">>
<<addDialogue "" "[[Check abandoned ambulance|AmbulanceCheck]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Check abandoned black car|CarBlackCheck]]">>
<<addDialogue "" "[[Check abandoned car|CarGreyCheck]]">>
<<addDialogue "" "[[Check abandoned ambulance|AmbulanceCheck]]">>
<<horizontalEnd>>
<</if>>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Path to forest|Camino-izquierda]]">>
<<addDialogue "" "[[Parking near the entrance|Parking]]">>
<<horizontalEnd>>
<<switch visited()>>
<<case 1>>
<<dialogue "" "When you return to the door, you find it closed. You approach and push, but it doesn’t move. It’s blocked from the other side." "description">>
<<addDialogue "Casey" "What the hell?, Hey! Doctor Home, open the door! Home!" "talk">>
<<addDialogue "" "You yell and pound on the door, but it’s useless. You get no response, and the door remains shut." "description">>
<<addDialogue "Casey" "God, how could I be so stupid?" "talk">>
<<addDialogue "" "Well, at least now I have a main suspect." "thoughts">>
<<addDialogue "Casey" "I need to find a way in and locate Home." "talk">>
<<script>>
addQuestWithStages(
"Re:Entry",
" The main entrance is sealed. Explore the building's perimeter to find another way to get inside.",
[
"Find another way in.",
],
"📋",
"main",
"enter_quest", // Custom ID
"img/quest.png" // Quest image
);
// Add stage images so completion notifications show the quest image
if (window.questSystem && window.questSystem.quests["enter_quest"]) {
window.questSystem.quests["enter_quest"].stageImages = [
"img/quest.png", // Stage 1
];
}
State.variables.captainQuestId = "enter_quest";
<</script>>
<<script>>
playSoundDirect('door.mp3');
<</script>>
<<default>>
<<dialogue "" "The door is closed from the other side." "description">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Go back|Parking]]">>
<<horizontalEnd>>
<<set $maindoorclosed = true>>
<<set $mayorcall = 2>><<if $maindoorclosed is true>>
<<dialogue "" "The large entrance door remains closed, its heavy structure worn down by time." "description">>
<<else>>
<<addDialogue "" "The large entrance door is open, revealing a dark interior where the air seems to seep out carrying the scent of dust and decay." "description">>
<</if>>
<<if $intro is 1>>
<<horizontalStart>>
<<addDialogue "" "[[Enter in the psiquiatric|noenter]]">>
<<addDialogue "" "[[Go to parking|Parking]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Enter in the psiquiatric|MainLobby]]">>
<<addDialogue "" "[[Go to parking|Parking]]">>
<<horizontalEnd>>
<</if>>
<<if $DocHometalk is 1 && $mayorcall is 1 && $maindooropen isnot true>>
<<goto "noenter">>
<</if>>
<<if $DocHometalk is 1 && $mayorcall isnot 1 && $mayorcall isnot 2>>
<<goto "mayorcall">>
<</if>>
<<if $maindoorclosed is true>>
<<goto "noenter">>
<</if>>
<<if $inside is true && $firstenter gte 1>>
<<script>>
setTimeout(() => {
audioSystemCrossfade('outsidetheme.mp3', 4000);
}, 1000);
<</script>>
<<set $inside = false>>
<</if>>
<<script>>
window.setLighting(90);
<</script>>
<<dialogue "" "He edges along the building to the right, its cracked pavement making the walk a little difficult. The walls, worn and covered in mold, have barred windows that seem to watch over the silent path. On one side, the bare trees rise like twisted shadows." "description">>
<<if $mayorcall gte 1 && $Windowcrash isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Inspect the building|buildinginspect2]]">>
<<horizontalEnd>>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Parking|Parking]]">>
<<addDialogue "" "[[Go around the building|Camino-intermedio]]">>
<<addDialogue "" "[[Road to lake|Camino-LagoParking]]">>
<<horizontalEnd>>
<<switch visited>>
<<case 1>>
<<dialogue "" "As you arrive, your chest tightens. The hood is slightly open, showing clear signs of tampering. You step closer, cautiously. As you examine the engine, your worst fears are confirmed: the system has been sabotaged." "description">>
<<addDialogue "Casey" "Shit! I really didn’t see this one coming..." "talk">>
<<addDialogue "" "You glance nervously over your shoulder, but the forest remains eerily silent. A cold knot forms in your stomach." "description">>
<<addDialogue "Casey" "Stay calm, Casey. Think." "talk">>
<<addDialogue "" "This wasn’t a random act; someone doesn’t want me to leave this place." "thoughts">>
<<addDialogue "" "You step away from the car, every instinct screaming that you’re being watched. The feeling is so intense that it makes your skin crawl." "description">>
<<addImage "img/events/caseycar.png">>
<<horizontalStart>>
<<addDialogue "" "[[Examine engine|CarEngine]]">>
<<horizontalEnd>>
<<default>>
<<dialogue "" "The car, though in good condition, has been recently sabotaged; the main starter fuse is missing." "description">>
<<addDialogue "" "If I want to get out of here, I'll have to find that fuse." "thoughts">>
<<addImage "img/events/caseycar.png">>
<<horizontalStart>>
<<addDialogue "" "[[Back|Parking]]">>
<<horizontalEnd>>
<</switch>>
<<set $mycarSabotage = true>><<dialogue "" "You examine the engine closely, taking note of every detail. The cables, the battery, the electrical components all seem intact, but something doesn’t add up. As you inspect more closely, you discover what you feared: the system has been sabotaged." "description">>
<<addDialogue "" "Someone took the main fuse from the engine. Without it, the car won’t start." "thoughts">>
<<addDialogue "Casey" "Well, I wasn’t planning on leaving just yet. But goddammit! My car! That son of a bitch!" "talk">>
<<addDialogue "" "Anyway... there's nothing I can do right now, but if I find the one who did this... they'll pay with interest." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Back|Parking]]">>
<<horizontalEnd>>
<<dialogue "" "The lobby is dark and dusty, with faint traces of burns on the walls. The wooden counter is covered with yellowed papers and debris. Light filtering through the broken skylights casts shadows on the cracked floor. The distant creak of the building is the only sound." "description">>
<<horizontalStart>>
<<if $openleftdoor isnot true>>
<<addDialogue "" "[[Check door on the left|DoorLeft]]">>
<</if>>
<<if $maindoorclosed is true>>
<<addDialogue "" "[[Check entrance door|maindoor]]">>
<</if>>
<<if $DocHometalk is 1 && $mayorcall isnot 2>>
<<addDialogue "" "[[Talk to Dr. Home|doctalk]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<if $openleftdoor is true>>
<<addDialogue "" "[[Hallway to small office|Left Corridor]]">>
<</if>>
<<addDialogue "" "[[Main hallway]]">>
<<if $maindoorclosed isnot true>>
<<addDialogue "" "[[Outside|PsiquiatricEntrance]]">>
<</if>>
<<addDialogue "" "[[Right hallway|closedcorridor]]">>
<<horizontalEnd>>
<<if $corridorchek is 1 && $doorcorridorchek is 1 && $doorchek is 1 && $DocHometalk isnot 1 && $CabinCheck isnot true>>
<<goto "DocHomemeet">>
<</if>>
<<if $CabinCheck is true && $DocHometalk isnot 1>>
<<goto "DocHomemeet">>
<</if>>
<<if $firstenter isnot 1>>
<<goto "firstenter">>
<</if>>
<<if $openleftdoor is true && $mhr isnot true>>
<<goto "nodoc">>
<</if>>
<<if $MHenemy is true && $MHfight lt 2>>
<<set $MHenemy = false>>
<<set $MHfight = 0>>
<<removecountdown>>
<<script>>
setTimeout(() => {
audioSystemCrossfade('lobbytheme.mp3', 4000);
}, 1000);
<</script>>
<</if>>
<<if $inside isnot true || $darksituation is true>>
<<set $darksituation = false>>
<<set $inside = true>>
<<script>>
setTimeout(() => {
audioSystemCrossfade('lobbytheme.mp3', 4000);
}, 1000);
<</script>>
<</if>>
<<script>>
window.setLighting(80);
<</script>><<dialogue "" "You leave the building, leaving the doctor behind, waiting in the shadows. While you were inside, night has fully fallen. You make your way to the parking lot, searching for a secluded spot where you can have some privacy and where your words won’t echo throughout the area." "description">>
<<addDialogue "Casey" "I don't think it’s a good idea to wait for him to call again." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Go to parking|mayorcall2]]">>
<<horizontalEnd>>
<<set $mayorcall = 1>><<dialogue "" "You dial the mayor's number quickly, but the call cuts off as soon as it starts to ring. Frustrated, you try again. The signal remains unstable, interrupted by static. Finally, the call connects, but Quentin's voice sounds distant, as if coming from somewhere far away." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Quentin?|mayorcall3]]">>
<<horizontalEnd>>
<<dialogue "Casey" "Quentin?" "talk">>
<<addDialogue "Mayor Quentin" "C@s3y... t3lls0m3th1ng..." "talk">>
<<addDialogue "Casey" "Shit! I can't understand you, Quentin. You hear me?" "talk">>
<<addDialogue "" "His voice cuts out, and a series of incomprehensible noises invade the line. You focus, trying to catch whatever he might be saying, but all you manage to hear are fragments, like distorted echoes of a distant conversation." "description">>
<<addDialogue "Mayor Quentin" "Y0u3 p@rtn3r... Rodriguez!" "talk">>
<<addDialogue "Casey" "What’s going on?" "talk">>
<<addDialogue "" "You try adjusting the volume, but all you manage to hear is more static. The sound cuts off abruptly." "description">>
<<addDialogue "Casey" "Damn! There’s interference here too..." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Hang up the phone|mayorcall4]]">>
<<horizontalEnd>>
<<script>>
playSoundDirect('staticphone.mp3');
<</script>>
<<showNPC "mayor" "img/characters/mayor/mayor.png" "Mayor Quentin">><<dialogue "" "You hang up the phone, feeling a wave of discomfort." "description">>
<<addDialogue "" "The call was pointless. He said “Rodriguez,” but I couldn’t understand anything else, anyway... What does Gabriela have to do with the Mayor? It doesn't make sense, she hates politicians… Mmm... probably she’s with him to find out where I am." "thoughts">>
<<addDialogue "Casey" " Ugh… maybe I should call her later. I have no other choice. It's time to continue my investigation. I need to go back to the doctor." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|Parking]]">>
<<horizontalEnd>>
<<playSound "sound" "media/sounds/none.mp3" volume:0.5>>
Classic: (default horizontal)
<<addVideo "media/violet/scissors2.mp4">>
Vertical (default settings)
<<addVideo "media/mambo/54.mp4" "" "vertical">>
Customizable:
<<addVideo "media/violet/scissors2.mp4" "" false true true true "500px">>
<<addImage "img/backgrounds/showerd.png">>
<<addImageV "img/items/keys/cbottle.png">><<dialogue "" "When you look at the car again, everything remains the same. The layer of fallen leaves still partially covers it, and the armored windows keep the interior hidden. The door remains locked, with no signs that anyone has been near." "description">>
<<addDialogue "" "I need the car keys or something to pick the lock." "thoughts">>
<<addImage "img/events/fbicar.png">>
<<if $FBIcar isnot true>>
<<if $ironbarStair is true>>
<<if $hasCarKey is true>>
<<horizontalStart>>
<<addDialogue "" "[[Break glass with iron bar|noblackcar]]">>
<<addDialogue "" "[[Open car with key|openfbicarKey]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Break glass with iron bar|noblackcar]]">>
<<horizontalEnd>>
<</if>>
<</if>>
<<horizontalStart>>
<<lockBreak "average" "openfbicar" "Parking2" true>>
<<horizontalEnd>>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Back|Parking2]]">>
<<horizontalEnd>>
<<if $fbicarchek isnot true>>
<<goto "checkfbicar">>
<</if>><<switch visited()>>
<<case 1>>
<<dialogue "Casey" " Let’s see if this wreck has anything useful..." "talk">>
<<addDialogue "" "The hood is caked in rust, and the windows are nothing but jagged shards. As the door creaks open, a foul stench of mildew and stale gasoline wafts out, revealing nothing but a mess of debris inside." "description">>
<<addDialogue "Casey" " Perfect, nothing like a moldy seat and a trunk jammed shut." "talk">>
<<addDialogue "" "The car is completely useless." "description">>
<<default>>
<<dialogue "" "The hood is caked in rust, and the windows are nothing but jagged shards. As the door creaks open, a foul stench of mildew and stale gasoline wafts out, revealing nothing but a mess of debris inside." "description">>
<</switch>>
<<addImage "img/events/car1.png">>
<<horizontalStart>>
<<addDialogue "" "[[Back|Parking2]]">>
<<horizontalEnd>>
<<if $ambulanceStim isnot true>>
<<dialogue "" "You approach the abandoned ambulance, its paint faded and the doors slightly ajar. As you peer inside, the dust and stale odor hit you immediately.
Amid the scattered mess, something catches your eye: a small metal vial lying on the floor. You pick it up carefully and read the worn-out label." "description">>
<<addDialogue "Casey" "A stimulant! From back when they weren't banned yet. Quite the relic." "talk">>
<<addImage "img/events/ambulance.png">>
<<horizontalStart>>
<<addDialogue "" "[[Take stim|ambulanceStim]]">>
<<horizontalEnd>>
<<else>>
<<dialogue "" "You approach the ambulance again. The scene hasn’t changed." "description">>
<<addDialogue "Casey" " There’s nothing left here. Just a memory of better times… or worse." "talk">>
<<addImage "img/events/ambulance.png">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Back|Parking2]]">>
<<horizontalEnd>>
<<dialogue "" "From here, you can only see two paths. To your left, a trail leads into the forest. The trees form a natural canopy, and the ground is covered with fallen leaves. The path is dark and silent. To your right, a simpler path leads back to the parking lot and goes around the building." "description">>
<<if $mayorcall gte 2>>
<<horizontalStart>>
<<addDialogue "" "[[Inspect the building|buildinginspect]]">>
<<horizontalEnd>>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Path to Forest|Camino-bosque]]">>
<<addDialogue "" "[[Parking|Parking2]]">>
<<addDialogue "" "[[Go around the building|Camino-izquierda2]]">>
<<horizontalEnd>>
<<if $Windowcrash is true && $bwinfight2 isnot true && $patientcome is 1>>
<<removecountdown>>
<<set $patientcome = 0>>
<</if>>
<<if $inside is true && $firstenter gte 1>>
<<script>>
setTimeout(() => {
audioSystemCrossfade('outsidetheme.mp3', 4000);
}, 1000);
<</script>>
<<set $inside = false>>
<</if>>\
<<script>>
window.setLighting(90);
<</script>>
<<script>>window.addItemFromDatabase('stim', 1);<</script>>
<<goto "Parking2">><<dialogue "" "You grit your teeth and swing the iron bar with all your strength against the car window. The impact echoes through the night with a dull thud, but the glass barely reacts, leaving only a faint mark on the surface" "description">>
<<addDialogue "Casey" " Tsk…" "talk">>
<<addDialogue "" "Frowning, you try again, this time with more force. The shock vibrates through your hands, but the glass remains unscathed." "description">>
<<addDialogue "" "Maybe one more time." "thoughts">>
<<addDialogue "" "You take a deep breath, tighten your grip, and deliver one final strike, pouring all your pent-up rage into it. A sharp crack fills the air—but it's not the glass that gives way. The bar snaps in two." "description">>" "description">>
<<addDialogue "Casey" "I should’ve known bulletproof glass wouldn’t break so easily. Maybe if I were a 2-meter-tall NBA player…" "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Back|Parking2]]">>
<<horizontalEnd>>
<<dialogue "" "You insert the key into the lock and turn it carefully. The door unlocks with a soft click, and the alarm remains silent." "description">>
<<addDialogue "Casey" " Alright... Let's see what's inside." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Inspect the car|FBIcar]]">>
<<horizontalEnd>>
<<discardItem "mission_keycar">>
<<dialogue "" "You open the car door and settle into the driver's seat, the air filled with the familiar scent of leather and metal." "description">>
<<if $hasCarKey isnot true>>
<<switch visited()>>
<<case 3>>
<<addDialogue "Casey" "Why the hell am I here again? Maybe I should find the keys first." "talk">>
<</switch>>
<</if>>
<<if $hasCarKey is true>>
<<horizontalStart>>
<<addDialogue "" "[[Start the car|sabotageFBI]]">>
<<horizontalEnd>>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Exit|Parking2]]">>
<<horizontalEnd>>
<<dialogue "" "You stop in front of the vehicle. The body, covered by a few fallen leaves, suggests it’s been here for a while. The armored windows prevent you from seeing inside." "description">>
<<addDialogue "" "It’s the FBI car, no doubt about it." "thoughts">>
<<addDialogue "" "You try to open it, but as you pull on the handle, you realize it won’t budge." "description">>
<<addDialogue "Casey" " And of course, it’s locked." "talk">>
<<addDialogue "" "There’s no sign that anyone has been in the car recently." "thoughts">>
<<addDialogue "Casey" " Anyway, I have to find a way to open it; maybe I’ll find something important." "talk">>
<<addImage "img/events/fbicar.png">>
<<if $FBIcar isnot true>>
<<if $ironbarStair is true>>
<<if $hasCarKey is true>>
<<horizontalStart>>
<<addDialogue "" "[[Break glass with iron bar|noblackcar]]">>
<<addDialogue "" "[[Open car with key|openfbicarKey]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Break glass with iron bar|noblackcar]]">>
<<horizontalEnd>>
<</if>>
<</if>>
<<horizontalStart>>
<<lockBreak "average" "openfbicar" "Parking2" true>>
<<horizontalEnd>>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Back|Parking2]]">>
<<horizontalEnd>>
<<set $fbicarchek = true>>
<<script>>
completeQuestStage("fbi_vehicle_quest");
<</script>>
<<if $FBIcar isnot true>>
<<dialogue "" "You slide into the driver's seat and glance around. You're not sure what you're looking for—just something useful, a clue. The car's interior is in good condition. You search the dashboard and seats until you find a document on the passenger seat. The FBI seal on the cover catches your attention. Flipping through it briefly, you spot a familiar name." "description">>
<<addDialogue "Casey" " Arklich Home." "talk">>
<<addDialogue "" "Okey, let's see what we have here." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Take files|FBIcar1]]">>
<<horizontalEnd>>
<<set $FBIcar = true>>
<<else>>\
<<if $sabotageFBI isnot true>>\
<<dialogue "" "You slide into the driver's seat and glance around. You check the seat, and there it is: the box of ammo is still in place." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take ammo|FBIcarAmmo2]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Exit|Parking2]]">>
<<horizontalEnd>>
<<else>>\
<<dialogue "" "You search between the seats once more, but there's nothing useful left. The car is empty." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Exit|Parking2]]">>
<<horizontalEnd>>
<</if>>
<</if>>
<<dialogue "" "You grab the document and begin to read it." "description">>
<<addImage "img/documents/fbifile_01.png">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|fbicarThink]]">>
<<horizontalEnd>>
<<script>>
completeQuestStage("FBI's car");
<</script>>
<<script>>
window.addDocumentWithNotification(
"fbi_report_charles_francis",
"FBI Field Report",
"Confidential document regarding Dr. Arklich Home and the Charles Francis Psychiatric Hospital.",
"",
"close_photo",
"📋",
{
imagePath: "img/documents/fbifile_01.png",
location: "Inside the vehicle of FBI agents Dina Carter and Rust Cohle",
photographer: "FBI Surveillance Unit",
frontDescription: `Classified report linking Dr. Arklich Home to the disappearances at the abandoned Charles Francis Psychiatric Hospital. Found in the agents' vehicle after their disappearance.`
}
);
<</script>>
<<script>>
playSoundDirect('page.mp3');
<</script>>
<<dialogue "Casey" "I’ll borrow this..." "talk">>
<<addDialogue "" "There's no turning back now. The doctor is kidnapping people, and I have to stop him." "thoughts">>
<<addDialogue "Casey" " Let's get moving." "talk">>
<<if $hasCarKey is true>>
<<horizontalStart>>
<<addDialogue "" "[[Start the car|sabotageFBI]]">>
<<horizontalEnd>>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Exit|Parking2]]">>
<<horizontalEnd>>
<<script>>window.addItemFromDatabase('pistol_ammo', 24);<</script>>
<<set $ammoCar = true>>
<<dialogue "" "You insert the keys into the ignition and turn, but the engine doesn't respond. You try again, with more force, but all you hear is a faint buzz followed by a deathly silence." "description">>
<<addDialogue "" "The car won't start. Maybe someone sabotaged it." "thoughts">>
<<addDialogue "" "You get out of the car and open the hood. A quick glance confirms your suspicions: a disconnected fuel line, cut wires, the entire electrical system tampered with." "description">>
<<addDialogue "" "The sabotage is obvious, though not very professional." "thoughts">>
<<addDialogue "Casey" " Someone didn’t want Rust and Dina to leave here." "talk">>
<<addDialogue "" "You slam the hood shut in frustration, the loud bang echoing through the abandoned parking lot as you realize you also arrived by car." "description">>
<<if $mycarSabotage isnot true>>
<<addDialogue "Casey" " Shit! I should check my car." "talk">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Parking|Parking2]]">>
<<horizontalEnd>>
<<dialogue "" "You slowly close the file, letting the information settle in your mind." "description">>
<<addDialogue "" "First floor, Hallway B, room 202. That's where Dr. Home's office is. Most likely, he's there." "thoughts">>
<<addDialogue "" "You tuck the document into your pocket and look around. Next to your papers, you find a box of ammunition: <span style="color: #22b22e;">38 rounds 9mm</span>. The car is off, parked in the desolate place. Everything seems calm. As you sit behind the wheel, you take one last look at the hospital in front of you, the place where the pieces of the puzzle will finally come together." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take ammo|FBIcarAmmo]]">>
<<addDialogue "" "[[Start the car|sabotageFBI]]">>
<<horizontalEnd>><<dialogue "Casey" "I’ll borrow this..." "talk">>
<<addDialogue "" "There's no turning back now. The doctor is kidnapping people, and I have to stop him." "thoughts">>
<<addDialogue "Casey" "Let's get moving." "talk">>
<<if $hasCarKey is true>>
<<horizontalStart>>
<<addDialogue "" "[[Start the car|sabotageFBI]]">>
<<horizontalEnd>>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Exit|Parking2]]">>
<<horizontalEnd>>
<<script>>window.addItemFromDatabase('pistol_ammo', 24);<</script>>
<<set $ammoCar = true>><<dialogue "" "You observe the building's facade. Its structure looks old and worn, with cracks in the walls and an air of abandonment. One of the windows catches your attention: the bars that should protect it are broken, leaving a space wide enough to pass through." "description">>
<<addImage "img/events/window.png">>
<<horizontalStart>>
<<addDialogue "" "[[Break the window|brokewindow]]">>
<<addDialogue "" "[[Back|Camino-izquierda]]">>
<<horizontalEnd>>
<<if $Windowcrash is true>>
<<goto "buildinginspect1">>
<</if>>
<<switch visited()>>
<<case 1>>
<<dialogue "" "You are close to the forest, the tall, dark trees rising like silent sentinels. The air shifts, becoming cooler, filled with the scent of damp leaves and soil. As you move forward, the shadows seem to shift, as if the forest were alive, watching you." "description">>
<<default>>
<<dialogue "" "The cool air and the whisper of leaves around you wrapping you in their presence. The shadows follow as you step between the trees." "description">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Go through the forest|Forest]]">>
<<addDialogue "" "[[Path to parking|Camino-izquierda]]">>
<<horizontalEnd>>
<<dialogue "" "Taking the path around the building to avoid the forest, you reach the back. Roots cling to the cracked walls, and a dusty path leads to an old entrance. Some windows are boarded up, others broken, reflecting the moon. The silence is broken only by the creak of wood and the wind." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Forest path|Camino-izquierda]]">>
<<addDialogue "" "[[Back of the building|Camino-intermedio]]">>
<<horizontalEnd>><<switch visited()>>
<<case 1>>
<<dialogue "" "The night cloaks the forest in an almost total darkness, interrupted only by the faint light of the moon filtering through the branches. The air is cold, and the deep, oppressive silence is suddenly broken by a distant howl. A shiver runs through you as the sound echoes among the trees, followed by other howls rising in response, creating a haunting symphony. The beasts are near, and the forest seems to breathe with them, wrapping you in a sense of imminent danger." "description">>
<<addDialogue "Casey" " I have bad feelings..." "talk">>
<<default>>
<<dialogue "" "The beasts are near, and the forest seems to breathe with them, wrapping you in a sense of imminent danger." "description">>
<</switch>>
<<if $Cave is true>>
<<horizontalStart>>
<<addDialogue "" "[[Explore the forest|ForestExplore]]">>
<<addDialogue "" "[[Path to parking|Camino-bosque]]">>
<<addDialogue "" "[[Go to the cave|Caveoutside]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Explore the forest|ForestExplore]]">>
<<addDialogue "" "[[Path to parking|Camino-bosque]]">>
<<horizontalEnd>>
<</if>>
<<script>>
window.setLighting(80);
<</script>><<dialogue "" "With a precise strike of the pistol’s butt, the glass shatters, exploding into a shower of sharp fragments." "description">>
<<addImage "img/events/brokenwindow.png">>
<<horizontalStart>>
<<addDialogue "" "[[Enter through the window|Enterwindow]]">>
<<horizontalEnd>>
<<script>>
playSoundDirect('windowcrash.mp3');
<</script>>
<<set $Windowcrash = true>>
<<dialogue "" "The window is broken just as you left it." "description">>
<<addImage "img/events/brokenwindow.png">>
<<horizontalStart>>
<<addDialogue "" "[[Enter through the window|Enterwindow]]">>
<<addDialogue "" "[[Back|Camino-izquierda]]">>
<<horizontalEnd>>
<<dialogue "" "A dry crack echoes through the night as you slip into the abandoned psychiatric facility, landing on the cold, dust-covered floor. The first thing you notice is the sour stench of dampness and decay." "description">>
<<addDialogue "Casey" " Ugh, what a stench..." "talk">>
<<addDialogue "" "A man emerges from the shadows, dressed in a torn and stained patient uniform. His head bears the crude scars of a botched lobotomy, leaving his gaze hollow and lost... until he sees you. In his hand, he clutches a strange, sharp object, its twisted form glinting in the dim light." "description">>
<<addDialogue "" "A patient! Maybe I can ask him a few questions." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Talk to him|brokewindowtalk]]">>
<<horizontalEnd>>
<<if $bwinfight gte 1>>
<<goto "Saveroom">>
<</if>><<addDialogue "Casey" "Hey, sorry, are you a patient of Dr. Home? " "talk">>
<<addDialogue "" "As soon as he hears your voice, something changes in his expression. His trembling lips curl into a grotesque smile, and his body starts to tremble with sickening excitement." "description">>
<<addDialogue "Patient" "You... pretty... so... pretty..." "talk">>
<<addDialogue "" "What the hell is wrong with him?" "thoughts">>
<<addDialogue "Casey" "Can I ask you a few questions?" "talk">>
<<addDialogue "Patient" "Come here... come... touch... you... I like... a lot..." "talk">>
<<addDialogue "" "The stranger reaches out, trying to grab one of your breasts, but you quickly move away before he can touch you." "description">>
<<addDialogue "Casey" "What the fuck are you trying to do?" "talk">>
<<addDialogue "Patient" "No! give me... Give me!" "talk">>
<<addDialogue "" "The patient, visibly enraged by the rejection, growls with uncontrollable fury. His eyes fill with rage, and without warning, he lunges toward you, his hands outstretched, trying to grab you. His body, clumsy and disoriented, moves with an unexpected speed." "description">>
<<addDialogue "Patient" "Argh!" "talk">>
<<addDialogue "Casey" "Oh my god!" "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Fight him|brokewindowfight]]">>
<<horizontalEnd>>
<<set $bwfight = 1>>
<<showNPC "patient" "img/monsters/patients/lbpatient.png" "Patient">>
<<set $EventE1 = 1>>
<<run startAdvancedBattle([
{
type: 'lobotomizedPatient',
hp: 80,
distance: 20,
randomDistance: true,
speed: "3-8",
minMovement: 3,
maxMovement: 8,
damage: 8,
DamageIgnore: {
'pistol': 0.2,
'rifle': 0.0,
'shotgun': 0.0,
'melee': 0.6,
'incendiary': 0.2,
'dragon_breath': 0.0,
'tracer': 0.2,
'9mm': 0.4,
'.45': 0.2,
'slugs': 0.0
}
},
], 'VictoryPassage', true, 'CombatEscape', true)>>
<<if $FightTutorial isnot true>>
<<set $FightTutorial = true>>
<div id="combatTutorialModal" class="modal">
<div class="modal-content">
<span class="close-button" onclick="document.getElementById('combatTutorialModal').style.display='none'">×</span>
<h2>Combat Tutorial with Firearms and Melee Weapons</h2>
<p><strong>Goal:</strong> Defeat all enemies without dying.</p>
<div class="modal-section">
<div class="modal-column">
<strong>Controls:</strong>
<ul>
<li><strong>Firearms:</strong>
<ul>
<li>Equip a firearm (such as a pistol, shotgun, or rifle) and the corresponding ammunition to shoot.</li>
<li>Press the "Shoot" button. If facing multiple enemies at once, press the "Shoot" button and then select the enemy card you want to attack.</li>
</ul>
</li>
<li><strong>Melee Attacks and Weapons: (Next Update)</strong>
<ul>
<li>If you have no weapons, you can perform melee attacks by waiting for the enemy to get close enough. These attacks deal less damage, but you can equip melee weapons to improve them.</li>
<li>Equip a melee weapon (such as a knife, bat, or machete) to perform close-range attacks when enemies are close enough.</li>
<li><strong>Note:</strong> Equipping a melee weapon will automatically unequip any equipped firearm, and vice versa.</li>
<li>Damage varies depending on the melee weapon used.</li>
</ul>
</li>
</ul>
</div>
<div class="modal-column">
<strong>Additional Tips:</strong>
<ul>
<li>Different types of ammunition can deal extra damage with firearms.</li>
<li>You can find weapon modifications that increase damage or accuracy.</li>
<li>Different rooms and hallways have various types of lighting, which affect your accuracy. Use the flashlight (when you have the flashlight) in dark places to gain an accuracy bonus.</li>
</ul>
</div>
</div>
<div style="text-align: center; margin-top: 20px;">
<button id="continueButton" class="continue-button">Continue</button>
</div>
</div>
</div>
<<script>>
$(document).ready(function () {
$("#combatTutorialModal").css("display", "flex");
$(document).off("click", "#continueButton, .close-button").on("click", "#continueButton, .close-button", function () {
$("#combatTutorialModal").css("display", "none");
});
});
<</script>>
<<timed 300ms>>
<<script>>
playSoundDirect('button.mp3');
<</script>>
<</timed>>
<</if>>
<style>
p {
text-align: center;
color: #e9e9e9;
}
b, strong {
font-weight: 700;
color: #d3bd7b;
}
.modal {
position: fixed;
z-index: 99999999;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgba(0, 0, 0, 0.8);
display: flex;
justify-content: center;
align-items: center;
margin: 0;
padding: 0;
}
.modal-content {
background: rgba(20, 20, 20, 0.9);
border: 3px solid #634d23;
border-radius: 5px;
padding: 20px;
max-width: 600px;
max-height: 80vh;
overflow-y: auto;
color: #d9c27e;
font-family: 'Trajan Pro', 'Times New Roman', serif;
}
.modal-content h2 {
text-align: center;
color: #ffcc00;
position: relative;
top: -2em;
margin-bottom: -2em;
}
.close-button {
color: #ffcc00;
float: right;
font-size: 28px;
font-weight: bold;
cursor: pointer;
position: relative;
top: -1.7em;
}
.modal-section {
display: flex;
flex-wrap: wrap;
}
.modal-column {
flex: 1;
min-width: 290px;
padding: 38px;
margin-bottom: -5em;
margin-top: -3em;
color: #e9e9e9;
}
.modal-content ul {
list-style-type: disc;
padding-left: 20px;
line-height: 1.6;
}
.continue-button {
padding: 10px 20px;
background-color: #3e3423;
color: #d9c27e;
border: 1px solid #634d23;
border-radius: 3px;
cursor: pointer;
font-family: 'Trajan Pro', 'Times New Roman', serif;
font-size: 16px;
transition: all 0.2s;
text-shadow: 1px 1px 1px #000;
}
.continue-button:hover {
background-color: #3e3423;
}
</style>
<<if $CaseyCoat is true && $CaseyJacket isnot true>>
<<setAvatarDirect "caseycoatpistol.png">>
<<elseif $CaseyCoat isnot true && $CaseyJacket is true>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<else>>
<<setAvatarDirect "caseypistol.png">>
<</if>>
<<if $escalerarota isnot true>>
<<dialogue "" "The walls are covered in cracks and moss. A rusty staircase clings to the wall, its structure corroded by time. Each step looks fragile, as if it could give way under a single footstep." "description">>
<<addDialogue "" "To your right, half-covered in vines, a weathered wooden door stands slightly open. Through it, you can see the overgrown remains of what might have once been a garden." "description">>
<<else>>
<<dialogue "" "The walls are covered in cracks and moss. Where there was once a staircase, only twisted remnants of rusted metal remain. The steps have collapsed, leaving a dangerous gap that blocks access to the upper floors." "description">>
<<addDialogue "" "Near the base of the wall, partially obscured by debris and creeping ivy, you spot an old wooden door slightly ajar. Beyond it, faint light filters through an overgrown garden path." "description">>
<</if>>
<<if $mayorcall gte 1 && $ironbaritem isnot true>>
<<if $escalerarota is true && $ironbaritem isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Inspect the broken stair|ironbarStair]]">>
<<addDialogue "" "[[Inspect the building|buildinginspect3]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Inspect the building|buildinginspect3]]">>
<<horizontalEnd>>
<</if>>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Path to forest|Camino-izquierda2]]">>
<<addDialogue "" "[[Garden]]">>
<<addDialogue "" "[[Road to lake|Camino-derecha2]]">>
<<horizontalEnd>><<if $escalerarota isnot true>>
<<dialogue "" "You observe the building's facade closely, searching for any signs of activity. The peeling paint and broken windows confirm that the place has been abandoned for years. As your gaze shifts to one side, you notice a metal staircase attached to the wall. It's rusty and looks fragile. It's the fire escape." "description">>
<<addDialogue "" "It might still hold my weight, but it's risky." "thoughts">>
<<addImageV "img/events/escalera.png">>
<<else>>
<<dialogue "" "You return to the spot where the ladder gave way. The twisted metal remnants hang crookedly, swaying slightly in the wind, producing a constant, irritating creak that breaks the silence of the place." "description">>
<</if>>
<<if $escalerarota isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Climb up the staircase|brokenstairs]]">>
<<horizontalEnd>>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Back|Camino-intermedio]]">>
<<horizontalEnd>>
<<dialogue "" "You spot the remains of the collapsed staircase—broken wooden planks and twisted metal scattered across the floor. The failed attempt still lingers in your mind, a reminder of how unstable this place truly is." "description">>
<<addDialogue "" "I could have really gotten hurt." "thoughts">>
<<addDialogue "Casey" " This place is falling apart." "talk">>
<<addDialogue "" "You observe the remains of the collapsed staircase, with splintered planks and twisted metal scattered across the floor. Among the debris, something catches your eye—a metal bar still intact, sturdy enough to be useful." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take iron bar|ironbarStair1]]">>
<<addDialogue "" "[[Back|Camino-intermedio]]">>
<<horizontalEnd>>
<<dialogue "" "You're at the entrance of what was once a beautiful garden, now turned into a labyrinth of decay. Ahead of you, a cracked stone path stretches through the overgrowth, flanked by moss-covered statues and twisted trees. To the left, a patch of dry bushes parts to reveal a narrower trail, choked by low-hanging branches." "description">>
<<addDialogue "" "To the right, in the shadows, you glimpse what looks like a rusted bench next to a corroded fountain." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Go left|Garden-LeftPath]]">>
<<addDialogue "" "[[Main path|Garden-MainPath]]">>
<<addDialogue "" "[[Go right|Garden-RightPath]]">>
<<addDialogue "" "[[Back of the building|Camino-intermedio]]">>
<<horizontalEnd>>
<<script>>
window.setLighting(90);
<</script>><<dialogue "" "As you circle the building, you reach the back, where the windows are sealed and the walls are worn. Overgrown weeds cover old emergency exits, and the air smells of mildew. An abandoned courtyard stretches out in front of you, with sealed doors that seem forgotten." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Back of the building|Camino-intermedio]]">>
<<addDialogue "" "[[Road to lake|Camino-derecha]]">>
<<horizontalEnd>><<dialogue "" "You grab the metal bar in your hands. It’s cold and solid, and although slightly rusted, it seems sturdy enough to be useful." "description">>
<<addDialogue "Casey" " Maybe it’ll come in handy." "talk">>
<<horizontalStart>>
<<addDialogue "" " [[Back|Camino-intermedio]]">>
<<horizontalEnd>>
<<set $ironbarStair = true>>
<<set $ironbaritem = true>>
<<script>>
const itemKey = 'rustedbar';
const itemName = 'Rusted Bar';
const itemDescription = 'You picked it up after the fire escape collapsed. Thick, heavy, and corroded by time, it looks like part of the original railing.';
const itemValue = 75;
const weaponDamage = 10;
const imagePath = 'img/items/weapons/rustedbar.png';
// Add to Item Database
window.itemDatabase[itemKey] = {
name: itemName,
description: itemDescription,
category: "tool", // Melee weapons use "tool" category
type: "weapon", // Must be "weapon"
weaponType: "melee", // Critical: defines as melee weapon
damage: weaponDamage, // Base damage
image: imagePath,
stackable: false,
maxStack: 1,
value: itemValue,
weight: 0.5, // Lighter than crowbar
isSellable: true
};
// Add to Shop System
window.ShopSystem.sellPrices[itemName] = {
buy: itemValue,
sell: Math.floor(itemValue * 0.75),
stock: 3,
img: imagePath
};
// Add to Inventory with Notification
const item = window.createItemInstance(itemKey, 1);
const result = window.InventorySystem.addItem(item);
if (result && window.ItemNotificationSystem) {
window.ItemNotificationSystem.show(itemKey, 1, `${itemName} acquired!`);
}
// Refresh Shop UI
window.ShopSystem.populateSellItems();
<</script>><<dialogue "" "You decide to trust the old staircase, stepping cautiously onto the first rungs. The metal groans under your weight but seems to hold. Just as you begin climbing with more confidence, a sharp and terrifying sound stops you. CRACK! The metal gives way suddenly, and you plummet to the ground." "description">>
<<addDialogue "Casey" "Damn it!" "talk">>
<<addDialogue "" "The impact knocks the wind out of you, and a sharp pain shoots through your side." "description">>
<<addDialogue "Casey" " Oh, crap!" "talk">>
<<addDialogue "" "You slowly sit up, feeling the tender area. Luckily, it seems there are no serious injuries." "description">>
<<addDialogue "Casey" " Alright... I'm fine. But I'll have to find another way forward." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Back|Camino-intermedio]]">>
<<horizontalEnd>>
<<set $escalerarota = true>>
<<script>>
window.HealthSanitySystem.removeHealth(10)
<</script>>
<<dialogue "" "You observe the building's facade, searching for an entrance. The brick wall is weathered, but you don’t find any openings or signs of a visible entry. Everything seems locked and abandoned." "description">>
<<addDialogue "" "All the windows are barred, blocking any attempt to get in... or out." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Back|Camino-derecha]]">>
<<horizontalEnd>><<dialogue "" "The fog swirls around the trunks, hiding what lies ahead. Though the lake isn't visible yet, the air already carries its cold, stagnant scent. In addition to the main path leading to the lake, there is a narrow, winding trail that seems to disappear into the mist." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Road to parking|Camino-derecha]]">>
<<addDialogue "" "[[Winding Path|widingpath]]">>
<<addDialogue "" "[[Lake|Lake]]">>
<<horizontalEnd>>
<<switch visited()>>
<<case 1>>
<<dialogue "" "You decide to venture deeper into the forest, leaving behind any trace of safety. The tall, twisted trees form a natural canopy that blocks almost all light. The ground, covered in leaves and gnarled roots, crunches beneath your steps. A chilling wind blows through the branches, carrying distant whispers and the faint echo of howls. As you press on, the forest seems to close in around you, its stillness broken occasionally by the fleeting movement of something in the shadows." "description">>
<<default>>
<<dialogue "" "You walk through the trees in the forest, carefully checking every corner, but you find nothing out of the ordinary. Silence accompanies you as you keep searching without success." "description">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Continue exploring]]">>
<<addDialogue "" "[[Back to the path|Forest]]">>
<<horizontalEnd>>
<<dialogue "" "You walk through the trees in the forest, carefully checking every corner, but you find nothing out of the ordinary. Occasionally, a distant howl can be heard faintly in the distance, barely noticed as you continue searching without success." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue exploring|Continue exploring2]]">>
<<addDialogue "" "[[Back to the path|Forest]]">>
<<horizontalEnd>>
<<dialogue "" "You search the area carefully, your eyes scanning every corner and crevice, but find nothing of interest. The ground is bare, and the surrounding foliage offers no clues. A sense of unease settles over you as you realize there's nothing here that could help you. It's as if whatever you're looking for has been erased, hidden away, or simply never existed. The silence grows heavier, the absence of anything meaningful almost more unsettling than the unknown. You sigh, frustrated, and prepare to move on, but a lingering feeling of something missed nags at the back of your mind." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue exploring]]">>
<<addDialogue "" "[[Back to the road|Forest]]">>
<<horizontalEnd>>
<<if $Cave isnot true>>
<<goto "ExploreCave">>
<</if>>
<<switch visited()>>
<<case 1>>
<<dialogue "" "The fresh air of the forest mixes with the crunching of dry leaves beneath your boots. You move cautiously between the trees, each step taking you deeper into the darkness of the place. The shadows of the bare branches stretch long, creating strange shapes that seem to move on their own. The stillness is unsettling, but the need to keep moving pushes you forward." "description">>
<<addDialogue "" "Suddenly, something on the ground catches your attention. You crouch down, carefully observing the tracks that carve through the damp mud. They're fresh, deep, with sharp edges. They don't seem to belong to any common animal you've seen before. There's something odd about their shape, as if they're larger than what a normal animal would leave behind. The tracks seem to lead towards a denser part of the forest, where light is absent, almost as if the darkness swallows it whole. You stop for a moment, your mind beginning to make connections." "description">>
<<addDialogue "" "What kind of animal leaves such large and perfectly marked tracks? Maybe a wolf... but these tracks aren't normal size. Perhaps something else, something bigger..." "thoughts">>
<<addDialogue "Casey" "What am I getting myself into here?" "talk">>
<<addDialogue "" "Thinking about it causes a slight pressure in your chest, but you keep your gaze on the trail, following the tracks." "description">>
<<addDialogue "" "The sound of the wind rustling the leaves is now a distant echo. Each step seems to bring you closer to something, but you can’t shake the question: Closer to what exactly?" "description">>
<<default>>
<<dialogue "" "The tracks are still there, fresh and deep, as if the wolf passed by just moments ago. Their sharp edges make it clear they are recent, and the trail seems to lead deeper into the darker part of the forest. The sense that something is still nearby lingers, and with every step you take, you’re reminded that you're not alone. The tracks, so large and menacing, only confirm that the threat continues to stalk in the shadows." "description">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Follow tracks|ExploreCave2]]">>
<<addDialogue "" "[[Back to the path|Forest]]">>
<<horizontalEnd>><<dialogue "" "After what feels like an eternity, you arrive at the entrance of a cave. The air here is cooler, the faint smell of damp earth and something darker lingering in the stillness. The trees part to reveal the opening, a jagged maw in the side of the hill. The ground near the entrance is marked with deep paw prints, larger and more twisted than any wolf's track you've seen before." "description">>
<<addDialogue "" "A low growl echoes from inside, a sound that doesn’t belong to any creature you’ve encountered. It resonates through the cave’s mouth. You hesitate, your breath catching in your throat. The hairs on the back of your neck stand up as the growl grows louder, more distinct." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Enter in the cave|ForestCave]]">>
<<addDialogue "" "[[Back to the path|Forest]]">>
<<horizontalEnd>>
<<set $Cave = true>><<dialogue "" "Just as you approach the entrance to the cave, a howl shatters the silence of the night, a wild cry that chills you to the core. The sound grows louder, clearer, until you can hear the crunch of dry leaves beneath heavy, purposeful footsteps. From the shadows, two figures emerge, their eyes gleaming with deadly intensity. They move with unsettling agility, as if they know you’ve seen them. There’s no doubt—they’ve come for you." "description">>
<<addDialogue "" "Before you can react, one of the wolves lets out a low growl, while the other steps forward, locking eyes with you. In the blink of an eye, both of them lunge toward you, their razor-sharp teeth gleaming under the moonlight. The danger is imminent, and you have no choice but to prepare for the attack." "description">>
<<addDialogue "Casey" " Fuck!" "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Fight|caveShoot]]">>
<<horizontalEnd>>
<<set $cavefight = 1>>
<<timed 2s>>
<<script>>
playSoundDirect('wolf-howl.mp3');
<</script>>
<</timed>>
<<run startAdvancedBattle([
{
type: 'normalWolf',
hp: 80,
distance: 50,
randomDistance: true,
speed: "13-18",
minMovement: 13,
maxMovement: 18,
damage: 8,
DamageIgnore: {
'pistol': 0.7,
'rifle': 0.6,
'shotgun': 0.0,
'melee': 0.5,
'incendiary': 0.0,
'dragon_breath': 0.0,
'tracer': 0.2,
'9mm': 0.8,
'.45': 0.7,
'slugs': 0.9
}
},
{
type: 'normalWolf',
hp: 80,
distance: 60,
randomDistance: true,
speed: "13-18",
minMovement: 13,
maxMovement: 18,
damage: 8,
DamageIgnore: {
'pistol': 0.7,
'rifle': 0.4,
'shotgun': 0.0,
'melee': 0.5,
'incendiary': 0.0,
'dragon_breath': 0.0,
'tracer': 0.2,
'9mm': 0.7,
'.45': 0.7,
'slugs': 0.9
}
}
], 'VictoryPassage', true, 'CombatEscape', false)>>
<<if $FightTutorial isnot true>>
<<set $FightTutorial = true>>
<div id="combatTutorialModal" class="modal">
<div class="modal-content">
<span class="close-button" onclick="document.getElementById('combatTutorialModal').style.display='none'">×</span>
<h2>Combat Tutorial with Firearms and Melee Weapons</h2>
<p><strong>Goal:</strong> Defeat all enemies without dying.</p>
<div class="modal-section">
<div class="modal-column">
<strong>Controls:</strong>
<ul>
<li><strong>Firearms:</strong>
<ul>
<li>Equip a firearm (such as a pistol, shotgun, or rifle) and the corresponding ammunition to shoot.</li>
<li>Press the "Shoot" button. If facing multiple enemies at once, press the "Shoot" button and then select the enemy card you want to attack.</li>
</ul>
</li>
<li><strong>Melee Attacks and Weapons: (Next Update)</strong>
<ul>
<li>If you have no weapons, you can perform melee attacks by waiting for the enemy to get close enough. These attacks deal less damage, but you can equip melee weapons to improve them.</li>
<li>Equip a melee weapon (such as a knife, bat, or machete) to perform close-range attacks when enemies are close enough.</li>
<li><strong>Note:</strong> Equipping a melee weapon will automatically unequip any equipped firearm, and vice versa.</li>
<li>Damage varies depending on the melee weapon used.</li>
</ul>
</li>
</ul>
</div>
<div class="modal-column">
<strong>Additional Tips:</strong>
<ul>
<li>Different types of ammunition can deal extra damage with firearms.</li>
<li>You can find weapon modifications that increase damage or accuracy.</li>
<li>Different rooms and hallways have various types of lighting, which affect your accuracy. Use the flashlight (when you have the flashlight) in dark places to gain an accuracy bonus.</li>
</ul>
</div>
</div>
<div style="text-align: center; margin-top: 20px;">
<button id="continueButton" class="continue-button">Continue</button>
</div>
</div>
</div>
<<script>>
$(document).ready(function () {
$("#combatTutorialModal").css("display", "flex");
$(document).off("click", "#continueButton, .close-button").on("click", "#continueButton, .close-button", function () {
$("#combatTutorialModal").css("display", "none");
});
});
<</script>>
<<timed 300ms>>
<<script>>
playSoundDirect('button.mp3');
<</script>>
<</timed>>
<</if>>
<style>
p {
text-align: center;
color: #e9e9e9;
}
b, strong {
font-weight: 700;
color: #d3bd7b;
}
.modal {
position: fixed;
z-index: 99999999;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgba(0, 0, 0, 0.8);
display: flex;
justify-content: center;
align-items: center;
margin: 0;
padding: 0;
}
.modal-content {
background: rgba(20, 20, 20, 0.9);
border: 3px solid #634d23;
border-radius: 5px;
padding: 20px;
max-width: 600px;
max-height: 80vh;
overflow-y: auto;
color: #d9c27e;
font-family: 'Trajan Pro', 'Times New Roman', serif;
}
.modal-content h2 {
text-align: center;
color: #ffcc00;
position: relative;
top: -2em;
margin-bottom: -2em;
}
.close-button {
color: #ffcc00;
float: right;
font-size: 28px;
font-weight: bold;
cursor: pointer;
position: relative;
top: -1.7em;
}
.modal-section {
display: flex;
flex-wrap: wrap;
}
.modal-column {
flex: 1;
min-width: 290px;
padding: 38px;
margin-bottom: -5em;
margin-top: -3em;
color: #e9e9e9;
}
.modal-content ul {
list-style-type: disc;
padding-left: 20px;
line-height: 1.6;
}
.continue-button {
padding: 10px 20px;
background-color: #3e3423;
color: #d9c27e;
border: 1px solid #634d23;
border-radius: 3px;
cursor: pointer;
font-family: 'Trajan Pro', 'Times New Roman', serif;
font-size: 16px;
transition: all 0.2s;
text-shadow: 1px 1px 1px #000;
}
.continue-button:hover {
background-color: #3e3423;
}
</style>
<<if $CaseyCoat is true && $CaseyJacket isnot true>>
<<setAvatarDirect "caseycoatpistol.png">>
<<elseif $CaseyCoat isnot true && $CaseyJacket is true>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<else>>
<<setAvatarDirect "caseypistol.png">>
<</if>><<if $safecave isnot true>>
<<dialogue "" "The beam of your flashlight slices through the darkness like a knife. Behind you, the exit flickers faintly, a distant promise. But to your right, a narrow path vanishes into the blackness, leading deeper into the cave." "description">>
<<else>>
<<dialogue "" "The path continues into the darkness. The air feels thicker now, but everything remains still, with no sound or movement." "description">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Go through the cave|Cave2]]">>
<<addDialogue "" "[[Exit cave|Caveoutside]]">>
<<horizontalEnd>><<if window.gameState.lanternOn>>
<<goto "Cavelight">>
<<else>>
<<dialogue "" "You step into the cave cautiously, but as soon as you take a few steps inside, the darkness becomes absolute. You can't see anything. You move forward a little more, feeling your way blindly, but the uncertainty fills you with unease." "description">>
<<addDialogue "Casey" It's impossible..." "talk">>
<<addDialogue "" "Without light, I can't go any further." "description">>
<<addDialogue "" "You grit your teeth and decide that the best choice is to turn back toward the exit." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Exit cave|Caveoutside]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(10)
<</script>>
<</if>>
<<dialogue "" "The main garden path winds between overgrown bushes and the remnants of what were once ornamental flowers. The gravel, uneven and damp with fallen leaves, crunches under the weight of time. To one side, a blackened marble statue depicts a female figure, her face worn away by years of decay, moss climbing her base like hungry fingers. The stillness of the place is deepened by the shadows cast by the trees." "description">>
<<horizontalStart>>
<<if $inveradero isnot true>>
<<addDialogue "" "[[Go ahead|GreenhouseEntrada]]">>
<<else>>
<<addDialogue "" "[[Go to the Greenhouse|GreenhouseEntrada]]">>
<</if>>
<<addDialogue "" "[[Garden]]">>
<<horizontalEnd>><<dialogue "" "The left path has turned eerie due to neglect. The tiles on the ground are cracked and covered in rotting leaves, while the vegetation has spilled beyond the edges of the walkway." "description">>
<<horizontalStart>>
<<if $warehouse isnot true>>
<<addDialogue "" "[[Go ahead|BigWarehouse]]">>
<<else>>
<<addDialogue "" "[[Go to the warehouse|BigWarehouse]]">>
<</if>>
<<addDialogue "" "[[Garden]]">>
<<horizontalEnd>>
<<dialogue "" "The path leading off to the right side of the garden is barely discernible beneath the overgrown underbrush. Twisted shrubs and fallen branches intertwine across the old stone walkway, forming a natural barrier that blocks the way forward. A few trees have grown unchecked, leaning over the path until it’s completely sealed off. There’s no way to pass without something to clear the way." "description">>
<<switch visited()>>
<<case 1>>
<<addDialogue "Casey" "I can't go this way." "talk">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Garden]]">>
<<horizontalEnd>>
<<if $oldshed isnot true>>
<<dialogue "" "You step onto the narrow path, surrounded by shadows and the crunch of earth and branches beneath your feet. As you move forward, the trail becomes more defined, and the air fills with a deep silence. At the end of the path, hidden among the vegetation, you discover a small shed, concealed and secluded, as if it had been waiting to be found." "description">>
<<addImage "img/events/shed.png">>
<<horizontalStart>>
<<addDialogue "" "[[Path to lake|Camino-LagoParking]]">>
<<addDialogue "" "[[Old shed|shed]]">>
<<horizontalEnd>>
<<else>>
<<dialogue "" "You return to the path, the earth crunching beneath your feet. The trail remains clear, and the silence deep. At the end, the shed is still there, hidden among the vegetation, as if waiting to be found again." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Path to lake|Camino-LagoParking]]">>
<<addDialogue "" "[[Old shed|shed]]">>
<<horizontalEnd>>
<</if>>
<<dialogue "" "The lake stretches before you, its surface unsettlingly calm, like a dark mirror reflecting the darkness of the night. The fog covers the water, making it difficult to distinguish between the surface and the mist. The smell of stagnant water weighs heavily in the air, and the faint sound of water lapping against the shore is almost drowned out by the overwhelming silence." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Road to parking|Camino-LagoParking]]">>
<<addDialogue "" "[[Lakeshore]]">>
<<horizontalEnd>>
<<switch visited()>>
<<case 1>>
<<dialogue "" "You push open the shed door, which creaks as it opens, stepping into the dimness. Inside, the air is thick, heavy with the scent of old wood and dust. Around you, several stacked boxes and a lone barrel sit on the floor, covered in cobwebs and signs of neglect, as if the place hadn't been touched in years. Against the far wall, an old wooden desk stands unevenly, one leg slightly shorter than the others. Its surface is scratched and dented from age and use. Sitting atop the desk is a dusty, outdated computer tower and monitor, the screen dark and cracked in one corner, as if it had been punched or dropped." "description">>
<<if $CovertizoBuscar isnot 1>>
<<horizontalStart>>
<<addDialogue "" "[[Check desk|shedDesk]]">>
<<addDialogue "" "[[Old Vending machine|Vendingmachine]]">>
<<addDialogue "" "[[Search in the crates|shedCrates]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Check desk|shedDesk]]">>
<<addDialogue "" "[[Old Vending machine|Vendingmachine]]">>
<<addDialogue "" "[[Search in the crates|shedNocrates]]">>
<<horizontalEnd>>
<</if>>
<<default>>
<<dialogue "" "You return to the shed. The air is still heavy, and cobwebs cover the untouched boxes and barrel in their abandonment." "description">>
<<if $CovertizoBuscar isnot 1>>
<<horizontalStart>>
<<addDialogue "" "[[Check desk|shedDesk]]">>
<<addDialogue "" "[[Old Vending machine|Vendingmachine]]">>
<<addDialogue "" "[[Search in the crates|shedCrates]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Check desk|shedDesk]]">>
<<addDialogue "" "[[Old Vending machine|Vendingmachine]]">>
<<addDialogue "" "[[Search in the crates|shedNocrates]]">>
<<horizontalEnd>>
<</if>>
<</switch>>
<<spacing "20px">>
<<addDialoguePos "" "[[Exit|widingpath]]" "center">>
<<dialogue "" "The wooden desk is old and worn, its surface covered in scratches and dark stains. One of the legs wobbles slightly, and dust clings to every corner." "description">>
<<addImage "img/events/deskshed.png">>
<<horizontalStart>>
<<addDialogue "" "[[Check the computer|save1]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|shed]]" "center">>
<<dialogue "" "An old vending machine, the glass is so dirty that you can barely see anything, although it seems like there's still something inside" "description">>
<<addImage "img/vm.png">>
<<addDialogueInput "Enter vending machine code:" "vendingCode" "" "default" "$cheatcodeb" "@Passage">>
<<addSupportButtonInline "✨ Support us ✨">>
<<addBackButton "Back" "shed">><<set $Randomsearch = random(2)>>
<<if $Randomsearch is 0>>
<<dialogue "" "You find 3 cheap batteries. " "description">>
<<addImage "img/events/shedcrates.png">>
<<horizontalStart>>
<<addDialogue "" "[[Take batteries|shedbat]]">>
<<horizontalEnd>>
<<elseif $Randomsearch is 1>>
<<dialogue "" "You find 12 rounds 9mm and 1 cheap battery." "description">>
<<addImage "img/events/shedcrates.png">>
<<horizontalStart>>
<<addDialogue "" "[[Take items|shedbul]]">>
<<horizontalEnd>>
<<elseif $Randomsearch is 2>>
<<dialogue "" "You find 10 incendiary rounds 9mm and 1 cheap battery</span>." "description">>
<<addImage "img/events/shedcrates.png">>
<<horizontalStart>>
<<addDialogue "" "[[Take items|shedbul2]]">>
<<horizontalEnd>>
<</if>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|shed]]" "center">>
<<set $CovertizoBuscar = true>>
<<dialogue "" "The crates has already been looted; there’s nothing left." "description">>
<<addImage "img/events/shedcrates.png">>
<<horizontalStart>>
<<addDialogue "" "[[Back|shed]]">>
<<horizontalEnd>> <<switch visited()>>
<<case 1>>
<<dialogue "" "Surprisingly, the computer still works. The screen flickers to life, displaying an old but functional operating system." "description">>
<<default>>
<<dialogue "" "The computer still works. The screen flickers to life, displaying an old but functional operating system." "description">>
<</switch>>
<<addImage "img/events/shedcrates.png">>
<<horizontalStart>>
<<addDialogue "" "<div class='main-menu-btn' id='save-button'>Save/Load</div>">>
<<horizontalEnd>>
<<addDialoguePos "" "[[Go back|shedDesk]]" "center">>
<<script>>
// Ensure SugarCube save functionality
$(document).ready(function() {
// Direct save method for SugarCube
$('#save-button').on('click', function() {
// Explicitly use SugarCube's save method
try {
// Open saves dialog
UI.saves();
} catch (error) {
// Fallback error handling
console.error("Save functionality error:", error);
alert("Save function could not be executed.");
}
});
});
<</script>>
<<dialogue "" "You grab the batteries and stash them in your backpack." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Back|shed]]">>
<<horizontalEnd>>
<<addItem "battery" 5>>
<<set $CovertizoBuscar = 1>>
<<dialogue "" "You grab the ammo and the lone medium battery." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Back|shed]]">>
<<horizontalEnd>>
<<addItem "medium_battery" 1>>
<<script>>
window.addItemFromDatabase('pistol_ammo', 20);
<</script>><<dialogue "" "You grab the incendiary ammo and the lone medium battery and store them in your backpack." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Back|shed]]">>
<<horizontalEnd>>
<<addItem "medium_battery" 1>>
<<script>>
window.addItemFromDatabase('pistol_ammo_incendiary', 6);
<</script>><<switch visited()>>
<<case 1>>
<<dialogue "" "The ground beneath your feet becomes softer, damp with the moisture rising from the lake. The fog thickens, curling around your ankles as you approach the shore. The faint whisper of the trees seems distant, swallowed by the dense air. The shore is almost within reach, but something about the stillness feels unnatural. The dark, cold water waits in silence, as if holding secrets just beneath its surface." "description">>
<<default>>
<<dialogue "" "The fog thickens as you approach, partially covering the lake. The water appears more restless than usual, as if it were a sea or ocean instead of a lake. The air is dense, and the shore feels unnervingly silent." "description">>
<</switch>>
<<if $CabinFind isnot 1>>
<<horizontalStart>>
<<addDialogue "" "[[Explore the lake|CabinIntro]]">>
<<horizontalEnd>>
<</if>>
<<if $CabinFind gte 1>>
<<horizontalStart>>
<<addDialogue "" "[[Path to cabin|Camino-Cabin]]">>
<<horizontalEnd>>
<</if>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back to the lake|Lake]]" "center">>
<<dialogue "" "As you explore the area near the lake, you move through the underbrush until your steps come to a halt. Through the branches and the water's reflection, you spot a small wooden cabin. At first glance, it seems as abandoned as the rest of the place, with a worn roof and walls covered in mold, but something makes you furrow your brow: a faint light is shining from one of the windows. You stand still, watching carefully." "description">>
<<addDialogue "" "Light? Here, in the middle of nowhere?" "thoughts">>
<<addDialogue "Casey" " It could be Rust and Dina... or maybe someone else. I don’t know, something about this place doesn’t sit right with me." "talk">>
<<addImage "img/events/cabin.png">>
<<horizontalStart>>
<<addDialogue "" "[[Go to cabin|Cabin]]">>
<<horizontalEnd>>
<<set $CabinFind = 1>>
<<switch visited()>>
<<case 1>>
<<dialogue "" "The Path to cabin is surrounded by overgrown weeds, and the air feels heavier here. The faint light in the window remains, an unexpected presence in this forgotten place, leaving you with the feeling that something doesn't quite fit in the stillness of the surroundings." "description">>
<<default>>
<<dialogue "" "The Path to cabin is surrounded by overgrown weeds, and the air feels heavier here. The cabin is near." "description">>
<</switch >>
<<horizontalStart>>
<<addDialogue "" "[[Road to parking|Camino-LagoParking]]">>
<<addDialogue "" "[[Go to cabin|CabinDoor]]">>
<<addDialogue "" "[[Go to lake|Lake]]">>
<<horizontalEnd>>
<<dialogue "" "The cabin door is ajar, creaking softly as the wind pushes it. The faint light inside flickers, casting shadows in the dimness." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Enter cabin|Cabin]]">>
<<addDialogue "" "[[Back to lake|Camino-Cabin]]">>
<<horizontalEnd>>
<<if $CabinMeet is 1 && $carquest isnot 1>>
<<goto "carquest">>
<</if>>
<<if $CabinInside is true>>
<<script>>
setTimeout(() => {
audioSystemCrossfade('outsidetheme.mp3', 4000);
}, 1000);
<</script>>
<</if>>
<<set $CabinInside = false>>
<<script>>
window.setLighting(90);
<</script>><<dialogue "" "Franklin is in the cabin, standing by the table, carefully examining the scattered objects, unaware of your presence." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Talk to Franklin|Conserje]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Exit|CabinDoor]]" "center">>
<<if $CabinMeet isnot 1 && $DocHometalk is 1>>
<<goto "CabinMeet">>
<</if>>
<<if $DocHometalk isnot 1>>
<<goto "cabin">>
<</if>>
<<set $CabinInside = true>>
<<if $NoMoreGirl is true>>
<<dialogue "Franklin" "Hey Casey! Do you want something more? " "talk">>
<<else>>
<<dialogue "Franklin" "Hey girl! Do you want something more? " "talk">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Check the shop|Shop]]">>
<<addDialogue "" "[[Questions]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Bye|Cabin]]" "center">>
<<showNPC "frank" "img/characters/franklin/frank.png" "Frank">><<switch visited()>>
<<case 1>>
<<dialogue "" "As you step into the cabin, the air feels thick with humidity and dust, as if no one has been here in years. In the center of the room stands a table, the only notable piece of furniture, slightly dirty and with objects scattered around in apparent neglect. The light is on, but there’s no one around." "description">>
<<addDialogue "" "There’s no one here... but someone definitely lives here." "thoughts">>
<<addDialogue "" "I should come back later." "talk">>
<<default>>
<<addDialogue "" "There’s no one here." "description">>
<<addDialogue "Casey" " I should come back later." "talk">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Exit|CabinDoor]]">>
<<horizontalEnd>>
<<set $CabinCheck = true>>
<<dialogue "" "You push open the cabin door, which creaks as it opens, and step into the dimness, where the air smells of dampness and aged wood. The lamp on the table flickers, casting dancing shadows on the walls. In front of you, sitting in a worn wooden chair, is a man with a face weathered by years and the harshness of time. His gaze is deep, tired, but something in it reveals that he has lived more than anyone should. He wears simple clothes, and his presence is almost as fixed as the cabin itself. As you enter, the man slowly raises his gaze. His eyes scan your figure, evaluating you with an unsettling calm. The silence between you stretches, but it’s not uncomfortable, as if there’s something familiar in the air." "description">>
<<addDialogue "Casey" "Hello me, sir, may I ask you some questions?" "talk">>
<<addDialogue "" "The man watches you for a moment longer, his expression stern but not hostile, as if he had already anticipated your arrival. Then, with a deep and raspy voice, he responds." "description">>
<<addDialogue "Franklin" "I suppose so, but I'll tell you the same thing I told the other two FBI agents who came. I can't help you." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Why not?|ConserjeIntro]]">>
<<addDialogue "" "[[I'm not FBI|ConserjeIntro2]]">>
<<horizontalEnd>>
<<showNPC "frank" "img/characters/franklin/frank.png" "Franklin">>
<<set $FranklinMeet = true>>
<<set $CabinMeet = 1>>
<<unlockCharacterOnly 8>><<dialogue "" "It's not a bad thing if he thinks I'm with the FBI." "thoughts">>
<<addDialogue "Casey" " Why not? Maybe I can help you remember something you've been avoiding. I'm investigating Charles Francis Hospital, and I know something dark happened there. Would you mind telling me more?" "talk">>
<<addDialogue "Franklin" "This... fucking place, ahem... is dead to everyone. No one wants to talk about it. What happened there... there's no coming back from that. People disappeared, yes. And if you keep digging, you might end up like them." "talk">>
<<addDialogue "Casey" " What happened in that hospital is connected to what's happening in the city now—missing women, FBI agents. It's all tied together. If you know anything, no matter how small, I need to hear it." "talk">>
<<addDialogue "Franklin" "You haven’t even told me your name, and you're already demanding answers. How do you expect me to help if you won’t even extend that courtesy? Everyone has their own mysteries, but some prefer to keep them until they know who they’re dealing with." "talk">>
<<addDialogue "Casey" " Hmm... Okay. You're right. I'm Casey, $Mc.fullName." "talk">>
<<addDialogue "Franklin" "Franklin Hayes. People call me Frank. And if you’re going to keep pressing me, you better be straight with me—I don’t have time for games." "talk">>
<<addDialogue "" "Despite his words, time seems to be the only thing this man has." "description">>
<<addDialogue "Franklin" "What happened there should never have been buried. But you don’t understand... you have no idea what lies beyond that lake. If you keep going down this path, you’ll be crossing a line you can’t come back from." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[I won’t go back|ConserjeIntro3]]">>
<<horizontalEnd>>
<<showNPC "frank" "img/characters/franklin/frank.png" "Frank">><<dialogue "Casey" " I’m not FBI, I’m a private Detective, my name is $Mc.fullName." "talk">>
<<addDialogue "Franklin" "Oh... Well, I don’t think there’s much difference whether you work for the FBI or not. My name is Franklin Hayes, but everyone calls me Frank." "talk">>
<<addDialogue "Casey" " I’m investigating the Charles Francis hospital, and I know something dark happened there. Would you mind talking a little more?" "talk">>
<<addDialogue "" "The man watches you cautiously, as if evaluating your words, but doesn’t seem surprised by your knowledge.">>
<<addDialogue "Franklin" "That hospital is dead to everyone. No one wants to talk about it. What happened there... there’s no turning back. People disappeared, yes. And if you keep looking, you might end up like them." "talk">>
<<addDialogue "Casey" " What happened in that hospital is connected to what’s going on in the city now. Missing women, FBI agents. It’s all connected. If you know anything, no matter how small, I need to know." "talk">>
<<addDialogue "Franklin" "What happened there is something that should never have been left forgotten. But you don’t understand... you don’t even know what lies beyond that lake. If you keep going down this path, you’ll be crossing a line you can’t come back from." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[I won’t go back|ConserjeIntro3]]">>
<<horizontalEnd>>
<<showNPC "frank" "img/characters/franklin/frank.png" "Frank">><<dialogue "Casey" " I should start by checking the abandoned cars. And find the car Rust and Dina arrived in." "talk">>
<<addDialogue "" "There might be a clue." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Get moving|CabinDoor]]">>
<<horizontalEnd>>
<<set $carquest = 1>>
<<script>>
addQuestWithStages(
"FBI Vehicle Search",
"Agents Dina Carter and Rust Cohle disappeared during their investigation. Their vehicle might still be nearby — and could hold valuable evidence.",
[
"Find the FBI vehicle",
"Figure out how to open it and get inside",
],
"📋",
"side",
"fbi_vehicle_quest", // Custom ID
"img/quest.png" // Quest image
);
// Add stage images so completion notifications show the quest image
if (window.questSystem && window.questSystem.quests["fbi_vehicle_quest"]) {
window.questSystem.quests["fbi_vehicle_quest"].stageImages = [
"img/quest.png", // Stage 1
"img/quest.png" // Stage 2
];
}
State.variables.captainQuestId = "fbi_vehicle_quest";
<</script>><<addDialogue "Casey" "I'm not backing down. I'm already too deep into this, and I can't afford to turn my back. If you know anything else, please, tell me." "talk">>
<<addDialogue "" "Franklin sighs and crosshis arms." "description">>
<<addDialogue "Franklin" "Look, girl, I don't have all the answers you're looking for. I worked at that hospital fifteen years ago, back when it was still running. Even then, strange things were happening, but what's going on now... it's on a whole different level." "talk">>
<<addDialogue "Casey" "What's happening now?" "talk">>
<<addDialogue "Franklin" "In the past week, I've seen three girls arrive there. They're always brought in a black van. They're taken out sedated or restrained, as if they were objects, not people." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[How does the vehicle look?]]">>
<<horizontalEnd>>
<<showNPC "frank" "img/characters/franklin/frank.png" "Frank">><<dialogue "Casey" " How does the vehicle look?" "talk">>
<<addDialogue "Franklin" "It's a black van, always with tinted windows. I've noticed that the engine never fully shuts off, as if they're ready to take off quickly if something goes wrong." "talk">>
<<addDialogue "Casey" " Understand..." "talk">>
<<addDialogue "" "It's impossible to track this, for now." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Didn’t you do anything?]]">>
<<horizontalEnd>>
<<showNPC "frank" "img/characters/franklin/frank.png" "Frank">><<dialogue "" "Didn’t you do anything?" "talk">>
<<addDialogue "Franklin" "Of course I did something. I called the police several times. At first, they didn't take me seriously, but the last time two FBI agents came. They asked me questions, checked the place, but..." "talk">>
<<addDialogue "Casey" "What?" "talk">>
<<addDialogue "Franklin" "They arrived two days ago. Since then, I haven’t seen them come out. Their car is still there, in the parking lot, gathering dust, like the hospital swallowed them whole." "talk">>
<<addDialogue "" "Where could Rust and Dina have gone?" "thoughts">>
<<addDialogue "Casey" "Did they say their names?" "talk">>
<<addDialogue "Franklin" "Yes, the man introduced himself as Rust Cohle, and the woman as Dina Carter. They seemed sure of what they were doing, but now... I can’t help but think that place swallowed them up too." "talk">>
<<horizontalStart>>
<<addDialogue "" " [[Who takes them?]]">>
<<addDialogue "" "[[And the girls?]]">>
<<horizontalEnd>>
<<showNPC "frank" "img/characters/franklin/frank.png" "Frank">><<dialogue "Casey" " Who takes them?" "talk">>
<<addDialogue "Franklin" "I don’t know exactly who they are. I’ve never seen their faces clearly. They’re always careful to stay in the shadows, but I know it’s not Doctor Home. He just waits at the entrance, like he’s receiving a package." "talk">>
<<addDialogue "Casey" " It sounds horrifying... Wait a minute, did you say Doctor Home?" "talk">>
<<addDialogue "" "The doctor is my main suspect, but now I have a witness." "thoughts">>
<<addDialogue "Franklin" "Yes, the Doctor... He just waits at the entrance of the hospital. He steps out to greet them, takes a quick look, and then disappears with them inside. It's like they're delivering a package." "talk">>
<<addDialogue "Casey" " A human package, you mean." "talk">>
<<addDialogue "Franklin" "Sure, like a sack of meat.." "talk">>
<<if $Ask2 isnot 1>>
<<horizontalStart>>
<<addDialogue "" "[[And the girls?]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[About the last girl]]">>
<<horizontalEnd>>
<</if>>
<<set $Ask1 = 1>>
<<showNPC "frank" "img/characters/franklin/frank.png" "Frank">><<dialogue "Casey" "And the girls? What can you tell me about them?" "talk">>
<<addDialogue "Franklin" "Two of them... I don’t remember them well. It was night, and the place was dark. I could barely make out their faces, but what I do know is that they were completely sedated. One of them... I remember she was a redhead." "talk">>
<<addDialogue "Casey" " What else do you remember about her?" "talk">>
<<addDialogue "Franklin" "Not much. Just that she was asleep. The truth is, the only thing that stuck with me was the color of her hair, so bright, even in the dark." "talk">>
<<addDialogue "Casey" " And the others?" "talk">>
<<addDialogue "Franklin" "I didn’t get a good look at the first one. But the last one... the last one I remember perfectly." "talk">>
<<if $Ask1 isnot 1>>
<<horizontalStart>>
<<addDialogue "" "[[Who takes them?]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[About the last girl]]">>
<<horizontalEnd>>
<</if>>
<<set $Ask2 = 1>>
<<showNPC "frank" "img/characters/franklin/frank.png" "Frank">>
<<script>>
addQuestWithStages(
"Kidnapped girls",
"Infiltrate the dark depths of the abandoned hospital and navigate its forgotten corridors. Somewhere within these walls, the missing girls are waiting to be found. (No more content for now)",
[
"Find the kidnapped girls",
],
"📋",
"main",
"kidnap_quest", // Custom ID
"img/quest.png" // Quest image
);
// Add stage images so completion notifications show the quest image
if (window.questSystem && window.questSystem.quests["kidnap_quest"]) {
window.questSystem.quests["kidnap_quest"].stageImages = [
"img/quest.png", // Stage 1
];
}
State.variables.captainQuestId = "kidnap_quest";
<</script>>
<<dialogue "Casey" "You said you remember the last girl. What can you tell me about her?" "talk">>
<<addDialogue "Franklin" "The last one... I remember her well. She was blonde, with long, loose hair. Like the others, she was sedated, like a sack of potatoes. It was three days ago, the night before the two FBI agents disappeared." "talk">>
<<addDialogue "Casey" "And what else? Did you notice anything different about her?" "talk">>
<<addDialogue "Franklin" "No. Same as always, girl. They were all in the same state, sedated, without a shred of consciousness. They were all very pretty, of course, but in the end, they were just empty bodies that someone brought to leave there. I only saw the last one for a few seconds, there wasn’t much to see." "talk">>
<<addDialogue "Casey" "But something must have caught your attention!" "talk">>
<<addDialogue "" "The man pauses for a long time, thoughtful. Then, his eyes scan you more carefully, as if noticing something about you. His gaze briefly lingers on your face, then quickly moves down yor figure, admiring your body for a moment before speaking." "description">>
<<addDialogue "Franklin" "Well... now that you mention it... I can't really say. She was blonde, like you... I don't know why, but you make me think of... Wait a minute." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[What is wrong?]]">>
<<horizontalEnd>>
<<showNPC "frank" "img/characters/franklin/frank.png" "Frank">><<dialogue "Casey" " What's wrong?" "talk">>
<<addDialogue "Franklin" "The girl... I don’t know. She was like the others, yeah, but now that I’m looking at you, your face made me think of her. She was younger, of course, but her face, her hair... She looked almost identical to you. Don’t you find that strange?" "talk">>
<<addDialogue "Casey" "What do you mean, identical? What are you trying to say?" "talk">>
<<addDialogue "" "Identical to me? Is it possible that...? Angelica! Oh my God! It can’t be... I shouldn’t get my hopes up..." "thoughts">>
<<addDialogue "Franklin" "I don’t know, girl. It’s not that I mistook you for her, but... when I looked at you, something about you reminded me of her. She wasn’t awake, of course, but even though she was younger, the resemblance is... striking. Almost like you were her. I can’t explain it, but it’s like everything just fits somehow. Maybe it’s a sign that you should leave this place, as soon as possible." "talk">>
<<addDialogue "Casey" "Are you sure about what you’re saying? It can’t be..." "talk">>
<<addDialogue "" "Your heart pounds fiercely, your mind racing with doubts." "description">>
<<addDialogue "" "Maybe... Yes! It’s Angelica! My poor little sister! Angi..." "thoughts">>
<<addDialogue "" "How did she end up here? Where has she been all this time?" "thoughts">>
<<addDialogue "" "I'm glad she's alive, but she's in danger. If she's here, I have to find her!" "thoughts">>
<<addDialogue "Franklin" "Look, girl, I don’t know who she is or who you are. I’m just telling you what I saw and what I remember now. If you ask me, I’d say this is no coincidence. But whatever it is, staying here won’t do you any good." "talk">>
<<addDialoguePos "" "[[Never]]" "center">>
<<showNPC "frank" "img/characters/franklin/frank.png" "Frank">>
<<script>>
addQuestWithStages(
"Sister",
"Investigate the Charles Francis Psychiatric Hospital and uncover the truth behind your sister Angela's disappearance. Every clue you find brings you closer to finding her. (No more content for now)",
[
"Find out where your sister Angela is."
],
"📋",
"main",
"sister_quest",
"img/quest.png"
);
if (window.questSystem && window.questSystem.quests["sister_quest"]) {
window.questSystem.quests["sister_quest"].stageImages = [
"img/quest.png"
];
}
State.variables.captainQuestId = "sister_quest";
<</script>><<dialogue "Casey" "I’m not going to give up, no matter what happens. I won’t stop searching, even if it’s the last thing I do." "talk">>
<<addDialogue "Franklin" "You're playing with fire, girl. You can’t face all of this alone. There are things here you don’t understand—things no one understands." "talk">>
<<addDialogue "Casey" "What I don’t understand is why no one has done anything until now. If I have to be the one to put an end to this, then so be it." "talk">>
<<addDialogue "Franklin" "You're determined, huh? Fine… If you're really going through with this, I might have something that could help you. I’ve picked up a few things around here. I’m no saint, but I’ve learned how to survive. They're not free, of course." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[What things?|shoptalk]]">>
<<horizontalEnd>>
<<showNPC "frank" "img/characters/franklin/frank.png" "Frank">><<dialogue "Casey" "Things? What things?" "talk">>
<<addDialogue "Franklin" "Things that might come in handy. I’ve picked up a few items here and there—in the forgotten corners. Drugs, ammo, first aid kits, and other useful stuff. It's not much, but it could help you keep going." "talk">>
<<addDialogue "Casey" "So you're collecting supplies from an abandoned hospital and offering them like you're running a shop?" "talk">>
<<addDialogue "Franklin" "Out here, people survive however they can. I’m just making use of what others leave behind." "talk">>
<<addDialogue "Casey" "I can’t say I approve of your methods… but I’m not here to argue. Just don’t cause me any trouble." "talk">>
<<addDialogue "Franklin" "Deal, girl. No one survives in here by playing nice. If you need anything, you know where to find me." "talk">>
<<addDialogue "" "I'm getting tired of him calling me girl." "thoughts">>
<<if $askdoc isnot 1>>
<<horizontalStart>>
<<addDialogue "" "[[About Doctor Home]]">>
<<horizontalEnd>>
<</if>>
<<spacing "20px">>
<<addDialoguePos "" "[[Bye|Cabin]]" "center">>
<<showNPC "frank" "img/characters/franklin/frank.png" "Frank">><<dialogue "Casey" "Franklin, I need to know something else. What do you know about Doctor Home?" "talk">>
<<addDialogue "Franklin" "Doctor Home... I don't like that name at all." "talk">>
<<addDialogue "Casey" "Who is he?" "talk">>
<<addDialogue "Franklin" "He was the one in charge of this place. A brilliant guy, they say... but there was always something off about him. The other staff avoided being around him, and the patients... well, sometimes they came out of his office worse than they went in." "talk">>
<<addDialogue "Casey" "Worse, how?" "talk">>
<<addDialogue "Franklin" "The ones who stayed... some of them changed. They became stranger, more aggressive. Others just disappeared. After Charles Francis was shut down, the place was quiet for a while. At first, just some curious folks sneaking in—vandals, teenagers looking for a scare... you know how it is. But over the years... I’ve been living here for over 15 years, girl. Nothing ever happened, and then, about three months ago, I started seeing lights in the building, movement in the windows. It only happens at night." "talk">>
<<addDialogue "Casey" "And the doctor?" "talk">>
<<addDialogue "Franklin" "Yeah... I've seen him. And he wasn’t alone. A few months ago, I saw him go in, you know? He had people with him. Patients, or at least that’s what they looked like... some could barely walk, others seemed normal, calm. But what stood out the most were the women in nurse uniforms. They walked strangely, like they were... I don’t know, out of it, maybe drugged. One thing’s for sure—I’ve never seen anyone come out." "talk">>
<<addDialogue "Casey" " And you didn’t do anything? You didn’t even think about calling someone?" "talk">>
<<addDialogue "Franklin" "Who, girl? The police? Believe me, no one takes an old janitor living next to an abandoned hospital seriously. They’d say I’m crazy or, worse, tell me to mind my own business." "talk">>
<<addDialogue "Casey" "Yeah, but still, didn’t you try to find out more? To go in and see what was happening?" "talk">>
<<addDialogue "Franklin" "Look, girl, I already told you: what happens in there isn’t my business. I stay out of trouble and pick up what I can." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Call him out]]">>
<<addDialogue "" "[[Let it go]]">>
<<horizontalEnd>>
<<showNPC "frank" "img/characters/franklin/frank.png" "Frank">>
<<set $askdoc = 1>><<dialogue "" "This man..." "thoughts">>
<<addDialogue "Casey" "Franklin. If you went inside, you saw something. Let's not waste time—just tell me what you know. And I’d appreciate it if you called me by my name." "talk">>
<<addDialogue "Franklin" ">Alright, alright... Casey. Got it." "talk">>
<<addDialogue "" "That’s better." "thoughts">>
<<addDialogue "Franklin" "But really, what good would it do to talk about it? It won’t change what’s already happened. You’re here now, so just do your job. I haven’t seen much anyway—just ruins, old junk... nothing that matters." "talk">>
<<addDialogue "Casey" "I’m not here to judge you, Franklin. But if you're keeping something important from me and it gets someone hurt... I won’t forget that." "talk">>
<<addDialogue "Franklin" "Alright, alright... No need for threats, Detective. Just... be careful. There are still people in there. Some of them... they’ve lost their minds. Violent, dangerous. If you stay alert, you might be alright. You look like someone who can handle herself." "talk">>
<<addDialogue "Casey" "I can. But I appreciate the warning. I’ll keep my guard up." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Bye|Cabin]]">>
<<horizontalEnd>>
<<showNPC "frank" "img/characters/franklin/frank.png" "Frank">>
<<set $NoMoreGirl = true>><<dialogue "" "This man... I guess there's no helping him. Whatever." "thoughts">>
<<addDialogue "Casey" "Don’t make me repeat myself, Franklin. If you went in, you saw something. Don’t play games with me." "talk">>
<<addDialogue "Franklin" "What good would it do to talk about it? Huh? It wouldn’t change anything. You’re here now, so just do what you have to do. Anyway, I haven’t seen much... I saw what anyone would see in a place like this: ruins, forgotten things... garbage. Nothing worth mentioning..." "talk">>
<<addDialogue "Casey" "I’m not stupid, Franklin. If you don’t want to say it, fine, but let it be clear: if there’s anything else and I get into trouble because of your silence, I won’t forget it." "talk">>
<<addDialogue "Franklin" "Alright, alright... Don’t get like that, Detective. Just... be careful. Inside, there are people... Some are... out of their minds, violent. And trust me, you don’t want to run into them. I think if you stay alert." "talk">>
<<addDialoguePos "" "[[Bye|Cabin]]" "center">>
<<showNPC "frank" "img/characters/franklin/frank.png" "Frank">><<dialogue "Franklin" "What do you want? " "talk">>
<<spacing "100px">>
<<horizontalStart>>
<<addDialogue "" "[[Check the shop|Shop]]">>
<<addDialogue "" "[[Questions]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Bye|Cabin]]" "center">>
<<showNPC "frank" "img/characters/franklin/frank.png" "Franklin">>
<<script>>
openShop()
<</script>><<if $askdoc gte 1 && $safaplacetalk isnot true>>
<<if $NoMoreGirl is true>>
<<dialogue "Franklin" "Girl... I mean, Casey, I'd like to tell you something." "talk">>
<<else>>
<<dialogue "Franklin" "I'd like to tell you something, girl." "talk">>
<</if>>
<<else>>
<<addDialogue "Casey" "Maybe I have a few more questions." "talk">>
<<addDialogue "Franklin" "Alright, shoot." "talk">>
<</if>>
<<if $askdoc gte 1 && $safaplacetalk isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Hear him|safaplacetalk]]">>
<<horizontalEnd>>
<</if>>
<<if $askdoc isnot 1>>
<<horizontalStart>>
<<addDialogue "" "[[About Doctor Home]]">>
<<horizontalEnd>>
<</if>>
<<spacing "20px">>
<<addDialoguePos "" "[[No questions|Conserje]]" "center">>
<<showNPC "frank" "img/characters/franklin/frank.png" "Frank">>
<<dialogue "Casey" "Okey I hear you." "talk">>
<<addDialogue "Franklin" "I was thinking about something I want to tell you." "talk">>
<<addDialogue "Casey" "Yeah? Spit it out." "talk">>
<<addDialogue "Franklin" "If you manage to get someone out of this hellhole alive, you can bring them to my cabin. It’s safe, nobody from the hospital comes around here… they’ll be fine." "talk">>
<<addDialogue "" "This old man is well aware that they only bring women here." "thoughts">>
<<addDialogue "Casey" "Someone, huh? …Of course, you mean one of those kidnapped girls, right?" "talk">>
<<addDialogue "Franklin" "I'm just saying, if you need a place, it's there. No strings attached." "talk">>
<<addDialogue "Casey" "Sure, sure… And I bet the "good Samaritan" isn’t expecting anything in return." "talk">>
<<addDialogue "" "Franklin can’t help but smirk slightly." "description">>
<<addDialogue "Franklin" "Hey, don’t get me wrong. I’m no hero, but I’m not a monster either. I’m just offering help… and if the company happens to be pleasant, what’s the harm?" "talk">>
<<addDialogue "Casey" "Whatever you say, Franklin. But if I do bring someone there, you better behave." "talk">>
<<addDialogue "Franklin" "Oh, come on! I’m not that bad." "talk">>
<<addDialogue "" "I’d never trust a guy like him, especially when he says, "I’m not that bad." But maybe… I don’t have a choice." "thoughts">>
<<addDialogue "Casey" "We’ll see… First, I have to find them." "talk">>
<<addDialogue "Franklin" "Yeah… good luck with that. You’re gonna need it." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Bye|Cabin]]">>
<<horizontalEnd>>
<<set $safaplacetalk = true>>
<<set $SafePlace = true>>
<<showNPC "frank" "img/characters/franklin/frank.png" "Frank">> <<script>>
try {
var cheatcodeb = SugarCube.State.variables.cheatcodeb ?
SugarCube.State.variables.cheatcodeb.trim().toLowerCase() : "";
function addMultipleUpgrades(upgrades) {
upgrades.forEach(upgrade => window.addItemFromDatabase(upgrade, 1));
}
function addMultipleAmmo(ammoTypes) {
ammoTypes.forEach(ammo => window.addItemFromDatabase(ammo.type, ammo.amount));
}
// Helper function to navigate after delay
function navigateAfterDelay(passage, delay = 2000) {
setTimeout(() => {
SugarCube.Engine.play(passage);
}, delay);
}
if (cheatcodeb === "getmerich") {
window.phoneData.McMoney += 50000;
if (typeof window.showMoneyGain === 'function') {
window.showMoneyGain(50000, "Vending machine gave you money!");
}
navigateAfterDelay("Vendingmachine");
}
else if (cheatcodeb === "getmeduracell") {
window.rechargeLantern(100, 'premium');
navigateAfterDelay("Vendingmachine");
}
else if (cheatcodeb === "getmepills") {
window.addItemFromDatabase('antidep', 10);
window.addItemFromDatabase('medkit', 5);
window.addItemFromDatabase('antibio', 5);
navigateAfterDelay("Vendingmachine");
}
else if (cheatcodeb === "getmeshotgun") {
window.addItemFromDatabase('shotgun', 1);
navigateAfterDelay("Vendingmachine");
}
else if (cheatcodeb === "getmerifle") {
window.addItemFromDatabase('rifle', 1);
navigateAfterDelay("Vendingmachine");
}
else if (cheatcodeb === "getmeammopistol") {
addMultipleAmmo([
{type: 'pistol_ammo', amount: 50},
{type: 'pistol_ammo_expansive', amount: 50},
{type: 'pistol_ammo_incendiary', amount: 30}
]);
navigateAfterDelay("Vendingmachine");
}
else if (cheatcodeb === "getmeammoshotgun") {
addMultipleAmmo([
{type: 'shotgun_shells', amount: 50},
{type: 'shotgun_slug', amount: 30},
{type: 'shotgun_dragon', amount: 30}
]);
navigateAfterDelay("Vendingmachine");
}
else if (cheatcodeb === "getmeammorifle") {
addMultipleAmmo([
{type: 'rifle_ammo', amount: 50},
{type: 'rifle_ammo_piercing', amount: 25},
{type: 'rifle_ammo_tracer', amount: 20}
]);
navigateAfterDelay("Vendingmachine");
}
else if (cheatcodeb === "getmepistolupgrades") {
addMultipleUpgrades([
'pistol_laser_sight',
'pistol_recoil_compensator',
'pistol_extended_magazine'
]);
navigateAfterDelay("Vendingmachine");
}
else if (cheatcodeb === "getmeshotgunupgrades") {
addMultipleUpgrades([
'shotgun_adjustable_choke',
'shotgun_extended_tube',
'shotgun_speed_pump',
'shotgun_extended_barrel'
]);
navigateAfterDelay("Vendingmachine");
}
else if (cheatcodeb === "getmerifleupgrades") {
addMultipleUpgrades([
'rifle_bipod',
'rifle_scope',
'rifle_extended_magazine',
'rifle_heavy_barrel'
]);
navigateAfterDelay("Vendingmachine");
}
else {
// Show wrong code popup instead of going to Error passage
window.DialogueSystem.showWrongCodePopup("Vendingmachine");
}
} catch (error) {
console.error("Error en el código de trampa: ", error);
window.DialogueSystem.showWrongCodePopup("Vendingmachine");
}
<</script>><<lockBreak "average" "LockPickUsual" "FailedToOpenChestPassage">>
easy, average,hard, veryhard
<<script>>
window.giveLockpicks(5)
<</script>>
<<lockBreak "average" "LockPickUsual" "Failure" true>>
<<discardItem "mission_lockpick">>
Aumentar maximo de vida y cordura
<<script>>
window.increaseMaxSanity(100)
<</script>>
<<script>>
window.increaseMaxHealth(100)
<</script>>
recover
<<script>>
window.HealthSanitySystem.addSanity(10)
<</script>>
<<script>>
window.HealthSanitySystem.addHealth(10)
<</script>>
decrease
<<script>>
window.HealthSanitySystem.removeSanity(10)
<</script>>
<<script>>
window.HealthSanitySystem.removeHealth(10)
<</script>>
<<if window.gameState.lanternOn>> <<dialogue "" "You look around the office." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Wall|wi]]">>
<<addDialogue "" "[[Desk|di]]">>
<<addDialogue "" "[[Computer|introsave]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Exit|ci2]]" "center">><<if window.gameState.lanternOn>>
<<goto "Cavelight">>
<<else>>
<<dialogue "" "The darkness inside the cave is suffocating, but in the distance, a faint glow marks the exit. Without your flashlight, you have no choice but to move blindly, guided only by the dim light. Each step echoes in the silence until you finally cross the threshold, leaving the cavern behind and stepping back into the open air." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Exit cave|Caveoutside]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(10)
<</script>>
<</if>>
<<script>>
window.setLighting(40);
<</script>>
<<include "SanityEvents">>
<<include "HealthEvents">>
<<dialogue "" "With precise movements, you manipulate the internal pins until you feel a subtle click. The door unlocks with a faint snap, and the alarm remains silent." "description">>
<<addDialogue "Casey" "Alright... Let's see what's inside." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Inspect the car|FBIcar]]">>
<<horizontalEnd>>
<<script>>
completeQuestStage("fbi_vehicle_quest");
<</script>><<if window.gameState.lanternOn>>
<<goto "Cave2light">>
<<else>>
<<dialogue "" "The darkness inside the cave is suffocating, but in the distance, a faint glow marks the exit. Without your flashlight, you have no choice but to move blindly, guided only by the dim light. Each step echoes in the silence until you finally cross the threshold, leaving the cavern behind and stepping back into the open air." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Go to exit|Caveoutside]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(10)
<</script>>
<</if>><<if window.gameState.lanternOn>>
<<goto "Cave3light">>
<<else>>
<<dialogue "" "The darkness inside the cave is suffocating, but in the distance, a faint glow marks the exit. Without your flashlight, you have no choice but to move blindly, guided only by the dim light. Each step echoes in the silence until you finally cross the threshold, leaving the cavern behind and stepping back into the open air." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Go to exit|Caveoutside]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(10)
<</script>><<dialogue "" "The cave opens into a wider space, where the air feels cooler and the atmosphere calmer. A small pool of crystal-clear water reflects the shadows dancing on the rocky walls. The sound of your footsteps fades into the silence, while the water barely stirs, adding an unexpected sense of calm to the place." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Go to exit|Caveoutside]]">>
<<horizontalEnd>>
<<if $safecave isnot true>>
<<goto "diabolicwolfcave">>
<</if>>
<<if $safecave isnot true>>
<<dialogue "" "The passage narrows, and moisture clings to every surface. The beam of your flashlight barely reveals blurred outlines in the dim light. You move forward silently, the distant howls of wolves echoing through the cave." "description">>
<<else>>
<<dialogue "" "The passage narrows as you move forward. The weight of silence lingers, but there’s an odd stillness, as if the cave itself has settled into a quiet that wasn’t there before." "description">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Go through the cave|Cave3]]">>
<<addDialogue "" "[[Go to the exit|Cave]]">>
<<horizontalEnd>>
<<if $wolfcave isnot 2>>
<<goto "wolfcave">>
<</if>>
<<dialogue "" "You push forward through the final stretch of the tunnel, feeling the humidity in the air grow heavier. The sound of dripping water blends with the echo of your footsteps until you finally emerge into a vast underground chamber." "description">>
<<addDialogue "" "In front of you, a small lake of dark waters stretches across the heart of the cave. From a crack high above, faint rays of moonlight pierce through the darkness, casting a shimmering glow on the rippling surface. For a moment, the scene feels calm, almost unreal." "description">>
<<addDialogue "" "With cautious steps, you move toward the edge of the small lake. The water is dark and impenetrable, reflecting distorted fragments of the moonlight filtering through the crack above. A deathly silence takes hold of the place, broken only by the steady dripping of water and the distant sound of your own breathing. Then, you hear a noise. Your body tenses." "description">>
<<addDialogue "" "Something moves in the shadows." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Await|diabolicwolfcave2]]">>
<<addDialogue "" "[[Go to exit|Caveoutside]]">>
<<horizontalEnd>>
<<if $safecave isnot true>>
<<dialogue "" "The path grows darker, the air thick with the smell of damp earth. In the distance, you hear the rustling of something large moving, but nothing comes into view." "description">>
<<else>>
<<dialogue "" "The cave feels different now. The path ahead is clear, the ominous sounds have faded." "description">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Go through the cave|Cave4]]">>
<<addDialogue "" "[[Go to the exit|Cave2]]">>
<<horizontalEnd>>
<<dialogue "" "The silence of the cave is shattered by a guttural sound, a low, deep growl that echoes off the rocky walls. From the darkest shadow, a silhouette begins to emerge. First, two glowing red eyes pierce the gloom, locked onto you with an inhuman intensity. Then, the massive body advances, its blackened fur seeming to writhe with the very darkness that clings to it." "description">>
<<addDialogue "" "Its breath is heavy, each exhalation leaving a trail of mist in the cave’s freezing air. Its claws dig into the damp rock with every step, and an unnatural aura surrounds it, distorting the moonlight filtering through the crack above." "description">>
<<addDialogue "Casey" "What… the hell is that? Oh my god! A... werewolf?" "talk">>
<<addDialogue "" "What the... is that real? Your hand instinctively grips your weapon, all your senses tell you that the beast is real." "thoughts">>
<<addDialogue "Casey" "This isn’t a normal beast… How can this thing even exist?" "talk">>
<<addDialogue "" "Your breathing quickens. Your muscles tense. And the werewolf advances." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Fight|cavebattle2]]">>
<<horizontalEnd>>
<<timed 12s>>
<<showNPC "werewolf" "img/monsters/patients/werewolf.png" "Werewolf">>
<</timed>>
<<set $diabolicwolfcave = 1>>
<<timed 12s>>
<<script>>
playSoundDirect('monsterwolf-howl.mp3');
<</script>>
<</timed>>
<<timed 2s>>
<<script>>
playSoundDirect('monsterwolf-howl.mp3');
<</script>>
<</timed>>
<<script>>
window.HealthSanitySystem.removeSanity(10)
<</script>>
<<run startAdvancedBattle([
{
type: 'werewolf',
hp: 150,
distance: 40,
randomDistance: true,
speed: "9-15",
minMovement: 9,
maxMovement: 15,
damage: 23,
DamageIgnore: {
'pistol': 0.7,
'rifle': 0.6,
'shotgun': 0.8,
'melee': 0.5,
'incendiary': 0.1,
'dragon_breath': 0.0,
'tracer': 0.2,
'9mm': 0.8,
'.45': 0.7,
'slugs': 0.9
}
},
], 'VictoryPassage', true, 'CombatEscape', false)>>
<<if $CaseyCoat is true && $CaseyJacket isnot true>>
<<setAvatarDirect "caseycoatpistol.png">>
<<elseif $CaseyCoat isnot true && $CaseyJacket is true>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<else>>
<<setAvatarDirect "caseypistol.png">>
<</if>><<dialogue "" "The air inside the cave is dense and humid. The dim light of your flashlight barely cuts through the darkness, casting irregular shadows on the rocky walls. You take a step forward, then a low, menacing growl shatters the silence." "description">>
<<addDialogue "" "Why the hell did I come here?" "thoughts">>
<<addDialogue "" "Your muscles tense. You turn the flashlight, and the beam reveals two silhouettes in the darkness—wolves. Their eyes gleam with a hungry glint, their slightly open jaws exposing sharp, yellowed fangs. One of them moves forward slowly, its body tense, ready to strike. The other circles around, trying to flank you." "description">>
<<addDialogue "·Mc" "Damn it!" "talk">>
<<addDialogue "" "You don’t have time to think. The first one leaps with a fierce snarl." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Fight|cavebattle]]">>
<<horizontalEnd>>
<<timed 7s>>
<<showNPC "wolves" "img/monsters/patients/twowolves.png" "Wolves">>
<</timed>>
<<timed 2s>>
<<script>>
playSoundDirect('wolf-howl.mp3');
<</script>>
<</timed>>
<<set $wolfcave = 1>><<run startAdvancedBattle([
{
type: 'normalWolf',
hp: 80,
distance: 40,
randomDistance: true,
speed: "13-18",
minMovement: 13,
maxMovement: 18,
damage: 8,
DamageIgnore: {
'pistol': 0.7,
'rifle': 0.6,
'shotgun': 0.8,
'melee': 0.5,
'incendiary': 0.1,
'dragon_breath': 0.0,
'tracer': 0.2,
'9mm': 0.8,
'.45': 0.7,
'slugs': 0.9
}
},
{
type: 'strongWolf',
hp: 80,
distance: 50,
randomDistance: true,
speed: "13-18",
minMovement: 13,
maxMovement: 18,
damage: 12,
DamageIgnore: {
'pistol': 0.7,
'rifle': 0.6,
'shotgun': 0.8,
'melee': 0.5,
'incendiary': 0.1,
'dragon_breath': 0.0,
'tracer': 0.2,
'9mm': 0.8,
'.45': 0.7,
'slugs': 0.9
}
}
], 'VictoryPassage', true, 'CombatEscape', false)>>
<<if $CaseyCoat is true && $CaseyJacket isnot true>>
<<setAvatarDirect "caseycoatpistol.png">>
<<elseif $CaseyCoat isnot true && $CaseyJacket is true>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<else>>
<<setAvatarDirect "caseypistol.png">>
<</if>><<dialogue "" "You reach into the wolf's throat, your fingers brushing against something hard and foreign. After a brief struggle to free it, you pull out a worn, grimy object. It's a card, caked in mud and streaked with blood. You hold it in your hands, wiping it clean with the edge of your jacket.
It's an access card. The magnetic strip is scratched and worn from use, but the printed text is still visible, albeit slightly faded: Access Level B." "description">>
<<addDialogue "Casey" "Level B." "talk">>
<<addDialogue "" "With a soft exhale, you tuck the card into your jacket pocket. You don't know what door it opens, but something tells you this is no ordinary find." "description">>
<<addDialogue "" "It might be useful later." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|Cave4]]">>
<<horizontalEnd>>
<<set $bcard = true>>
<<script>>
// Special item example
const itemKey = 'bcard';
const itemName = 'Magnetic Card (B)';
const itemDescription = 'A small magnetic keycard labeled Access B for Charles Francis Hospital security doors';
const itemValue = 100;
const imagePath = `img/items/keys/bcard.png`;
window.itemDatabase[itemKey] = {
name: itemName,
description: itemDescription,
category: "special",
image: imagePath,
stackable: false,
maxStack: 1,
value: itemValue,
weight: 0.1,
isSellable: false,
};
window.ShopSystem.sellPrices[itemName] = {
buy: itemValue,
sell: Math.floor(itemValue * 0.75),
stock: 1,
img: imagePath
};
//Adding item ro inventory
const item = window.createItemInstance(itemKey, 1);
const result = window.InventorySystem.addItem(item);
if (result && window.ItemNotificationSystem) {
window.ItemNotificationSystem.show(itemKey, 1, `${itemName} acquired!`);
}
window.ShopSystem.populateSellItems();
<</script>><<dialogue "" "You put away the gun and the bullets. As you continue searching through the drawer, your fingers brush against your flashlight." "description">>
<<addDialogue "Casey" "The flashlight will surely come in handy." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Take the flashlight|introlinterna]]">>
<<horizontalEnd>>
<<script>>
window.addItemFromDatabase('pistol', 1);
window.addItemFromDatabase('pistol_ammo', 50);
<</script>>
<<dialogue "" "The room is small and dark, though you can still see. The air is thick and dusty. In one corner, an old desk holds an ancient computer, its screen covered in dust. Against the wall, a metal locker stands tall." "description">>
<<if $SRdoor isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Check door|saveroomdoor]]">>
<<addDialogue "" "[[Check the computer|saveroom]]">>
<<addDialogue "" "[[Check the locker|SRlocker]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Check the computer|saveroom]]">>
<<addDialogue "" "[[Check the locker|SRlocker]]">>
<<horizontalEnd>>
<</if>>
<<if $SRdoor is true>>
<<horizontalStart>>
<<addDialogue "" "[[Exit through the window|Camino-izquierda]]">>
<<addDialogue "" "[[Exit to hallway|SRcorridor]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Exit through the window|Camino-izquierda]]">>
<<horizontalEnd>>
<</if>>
<<if $Windowcrash is true && $bwinfight2 isnot true && $patientcome isnot 1>>
<<goto "nosaveroom">>
<</if>>
<<if $bwinfight2 is true && $reflexionSR isnot true>>
<<goto "reflexionSR">>
<</if>>
<<if $inside isnot true && $bwinfight2 is true>>
<<script>>
setTimeout(() => {
audioSystemCrossfade('lobbytheme.mp3', 4000);
}, 1000);
<</script>>
<<set $inside = true>>
<</if>>
<<script>>
window.setLighting(70);
<</script>>
<<if $patientcome is 1>>
<<dialogue "" "Someone is about to enter through this door." "description">>
<<addDialogue "" "I'll wait here, or I'll leave through the window." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Back|Saveroom]]">>
<<horizontalEnd>>
<<else>>
<<dialogue "" "As you open the door, a dark and silent hallway greets you. The faint light filtering in from the room barely illuminates the first few meters before being swallowed by the shadows. The air is thick, carrying a slight scent of dampness and rust. In the distance, a mournful howl shatters the silence, echoing through the corridors like an omen of something lurking in the darkness, sending a chill through you." "description">>
<<addDialogue "Casey" "Damn it, I can't see a thing..." "talk">>
<<addDialogue "" "Luckily, I brought my flashlight." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Exit to corridor|SRcorridor]]">>
<<addDialogue "" "[[Back|Saveroom]]">>
<<horizontalEnd>>
<<set $SRdoor = true>>
<</if>>
<<countdown 20 "brokewindowtalk2">>
<<script>>
setTimeout(() => {
audioSystemCrossfade('alert.mp3', 4000);
}, 1000);
<</script>>
<<goto "Saveroom">>
<<switch visited()>>
<<case 1>>
<<dialogue "" "You find a computer covered in dust in a corner of the room. Against all odds, it appears to be working. The screen flickers faintly, indicating that it’s still receiving power." "description">>
<<default>>
<<dialogue "" "The screen of the old computer flickers faintly, indicating that it’s still receiving power." "description">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "<div class='main-menu-btn' id='save-button'>Save/Load</div>">>
<<horizontalEnd>>
<<addDialoguePos "" "[[Go back|Saveroom]]" "center">>
<<script>>
// Ensure SugarCube save functionality
$(document).ready(function() {
// Direct save method for SugarCube
$('#save-button').on('click', function() {
// Explicitly use SugarCube's save method
try {
// Open saves dialog
UI.saves();
} catch (error) {
// Fallback error handling
console.error("Save functionality error:", error);
alert("Save function could not be executed.");
}
});
});
<</script>>
<<set $inside = false>>
<<dialogue "" "You open the locker, it's empty." "description">>
<<switch visited>>
<<case 1>>
<<addDialogue "" "Then, you think for a few seconds." "description">>
<<addDialogue "" "It's big enough for me." "thoughts">>
<<addDialogue "Casey" "I can get in here and hide." "talk">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Get inside|SRlockerinside]]">>
<<addDialogue "" "[[Back|Saveroom]]">>
<<horizontalEnd>>
<<if window.gameState.lanternOn>>
<<goto "SRcorridorLight">>
<<else>>
<<dialogue "" "The passage is completely dark. Although you can see the path ahead, everything else remains submerged in darkness. You can't distinguish anything else." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Small office|Saveroom]]">>
<<addDialogue "" "[[Move through hallway|SRcorridor1]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<script>>
window.setLighting(50);
<</script>><<switch visited()>>
<<case 1>>
<<dialogue "" "The sound of the last gunshot echoes through the hallways like thunder, its deafening roar fading into the vast emptiness of the asylum. The patient’s body collapses heavily to the floor, but there’s no time to react. A sound shatters the silence. Rushed footsteps pound in the distance, accompanied by a low growl. The screech of a rusted door swinging open..." "description">>
<<default>>
<<dialogue "" "A sound shatters the silence. Rushed footsteps pound in the distance, accompanied by a low growl. The screech of a rusted door swinging open..." "description">>
<</switch>>
<<addDialogue "Casey" "Shit, someone’s coming..." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|patientcome]]">>
<<horizontalEnd>>
<<set $patientcome = 1>>
<<dialogue "" "Shit, this isn’t starting well." "talk">>
<<addDialogue "" "Doesn’t matter, what's done is done. But something’s becoming clear: this place isn’t abandoned." "thoughts">>
<<addDialogue "Casey" "Even though it looks like it." "talk">>
<<addDialogue "" "There are still people here, even if they’re barely human anymore. They don’t seem capable of thinking beyond their instincts, but they’re still victims of something, or someone. Probably Doctor Home is involved. This place is still alive, in some twisted way." "thoughts">>
<<addDialogue "Casey" "And I... I’m stuck in its mess!" "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|Saveroom]]">>
<<horizontalEnd>>
<<set $reflexionSR = true>>
<<script>>
completeQuestStage("enter_quest");
<</script>>
<<script>>
addQuestWithStages(
"Return to the Main Hall",
"Dr. Home locked the main door from the inside after you stepped outside. Now that you've managed to get back inside, head to the main hall and look for the doctor.",
[
"Go back to the main hall.",
"Open the main entrance from the inside."
],
"📋",
"main",
"main_hall_quest", // Custom ID
"img/quest.png" // Custom quest image
);
// Add stage images (optional, you can repeat the same if there are no different ones)
if (window.questSystem && window.questSystem.quests["main_hall_quest"]) {
window.questSystem.quests["main_hall_quest"].stageImages = [
"img/quest.png", // Stage 1
"img/quest.png" // Stage 2
];
}
State.variables.homeQuestId = "main_hall_quest";
<</script>><<addDialogue "" "You slip into the locker and carefully close the door. Inside, the space is tight but enough to hide. Darkness surrounds you, and the only sound is your own breathing. You stay still for a few seconds, but nothing happens. Everything is quiet." "description">>
<<switch visited()>>
<<case 1>>
<<addDialogue "" "If danger is near, this could be a good hiding spot.
But I can't stay here forever." "thoughts">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Leave|Saveroom]]">>
<<horizontalEnd>>
<<if $Windowcrash is true && $bwinfight2 isnot true && $patientcome is 1>>
<<goto "patientcome2">>
<</if>>
<<dialogue "" "You slip into the locker just in time, carefully closing the door. You hold your breath. The room's door creaks open. A patient enters, muttering incoherently, his bare feet slapping against the floor unevenly. He suddenly stops, sniffing the air as if he can sense your presence. The sound of shuffling footsteps grows closer, his breathing heavy and ragged, like a wounded animal." "description">>
<<addDialogue "" "Come on… just keep moving." "thoughts">>
<<addDialogue "" "For a few seconds, the patient lingers, glancing around, his head tilting unnaturally. Then, as if losing interest, he grunts and leaves, shutting the door behind him. You wait a few moments before finally exhaling." "description">>
<<addDialogue "Casey" "God… that was close." "talk">>
<<addDialogue "" "I can't stay here forever. I need to keep moving." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Exit|Saveroom]]">>
<<horizontalEnd>>
<<removecountdown>>
<<script>>
setTimeout(() => {
audioSystemCrossfade('lobbytheme.mp3', 4000);
}, 1000);
<</script>>
<<set $bwfight2 = 2>>
<<set $bwinfight2 = true>>
<<set $patientcome = 0>>
<<dialogue "" "The footsteps grow closer, heavy and clumsy, until they stop at the doorway. In the dim light, you see his silhouette—a tall, filthy man with tattered clothing and a vacant expression, as if his mind is trapped in some dark corner of his own madness. In his hand, he grips a crude butcher’s knife, the metal dulled and stained. He stands there, motionless, breathing erratically as his eyes scan the scene. He doesn’t step inside. He just watches. As if his mind is struggling to process what’s in front of him." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Fight him|brokewindowfight2]]">>
<<addDialogue "" "[[Try to talk|brokewindowtalk2-2]]">>
<<horizontalEnd>>
<<showNPC "patient" "img/monsters/patients/madpatient.png" "Patient">>
<<script>>
setTimeout(() => {
audioSystemCrossfade('lobbytheme.mp3', 4000);
}, 1000);
<</script>>
<<set $bwfight2 = 1>>
<<set $EventE2 = 1>><<run startAdvancedBattle([
{
type: 'madPatient',
hp: 70,
distance: 20,
randomDistance: true,
speed: "3-8",
minMovement: 3,
maxMovement: 8,
damage: 10,
DamageIgnore: {
'pistol': 0.5,
'rifle': 0.2,
'shotgun': 0.1,
'melee': 0.4,
'incendiary': 0.2,
'dragon_breath': 0.0,
'tracer': 0.2,
'9mm': 0.4,
'.45': 0.2,
'slugs': 0.0
}
},
], 'VictoryPassage', true, 'CombatEscape', true)>>
<<if $CaseyCoat is true && $CaseyJacket isnot true>>
<<setAvatarDirect "caseycoatpistol.png">>
<<elseif $CaseyCoat isnot true && $CaseyJacket is true>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<else>>
<<setAvatarDirect "caseypistol.png">>
<</if>><<dialogue "" "You take a deep breath, adrenaline still coursing through your body from the previous shot. You know that any wrong move could trigger another fight, and you've already drawn enough attention." "description">>
<<addDialogue "Casey" "Listen... I don’t want to kill you. You don’t have to do this." "talk">>
<<addDialogue "" "The man, motionless in the doorway, tilts his head with a spasmodic jerk. His eyes scan the room, lingering on the corpse at your feet. His breathing is uneven, ragged, and the chipped blade of his butcher knife catches the dim light of the room." "description">>
<<addDialogue "" "A guttural click escapes his throat, followed by a low, sickly chuckle. His fingers, clenched around the weapon’s handle, tremble with a mix of anxiety and perverse excitement." "description">>
<<addDialogue "Patient" "You’re... pretty..." "talk">>
<<addDialogue "" "You take a step back as a gag rises in your throat and your stomach churns, triggered by a visceral revulsion." "description">>
<<addDialogue "" "Oh... fuck is another lobotomized rapist..." "thoughts">>
<<addDialogue "Casey" "Stay back!" "talk">>
<<addDialogue "" "But the plea only excites him further. His grin stretches into something grotesque, yellowed teeth peeking through cracked lips." "description">>
Suddenly, his body convulses, and with a guttural roar, he lunges forward, raising the knife." "description">>
<<addDialogue "Patient" "Mmm... This smell... Give me!" "talk">>
<<addDialogue "Casey" "No time for talking now!" "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Fight him|brokewindowfight2-2]]">>
<<horizontalEnd>>
<<set $bwfight2 = 1>>
<<showNPC "patient" "img/monsters/patients/madpatient.png" "Patient">><<run startAdvancedBattle([
{
type: 'madPatient',
hp: 70,
distance: 10,
randomDistance: true,
speed: "3-8",
minMovement: 3,
maxMovement: 8,
damage: 10,
DamageIgnore: {
'pistol': 0.5,
'rifle': 0.2,
'shotgun': 0.1,
'melee': 0.4,
'incendiary': 0.2,
'dragon_breath': 0.0,
'tracer': 0.2,
'9mm': 0.4,
'.45': 0.2,
'slugs': 0.0
}
},
], 'VictoryPassage', true, 'CombatEscape', true)>>
<<if $CaseyCoat is true && $CaseyJacket isnot true>>
<<setAvatarDirect "caseycoatpistol.png">>
<<elseif $CaseyCoat isnot true && $CaseyJacket is true>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<else>>
<<setAvatarDirect "caseypistol.png">>
<</if>>
<<setAvatarDirect "casey.png">>
<<if $Ic isnot true>>
<<goto "ci">>
<<else>>
<<goto "ci2">>
<</if>>
<<dialogue "" "The light from your flashlight illuminates the area, revealing the deteriorated walls and some abandoned furniture. The atmosphere feels slightly less threatening." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Small office|Saveroom]]">>
<<addDialogue "" "[[Go to next hallway|SRcorridor1]]">>
<<horizontalEnd>>
<<set $enemyChance = random(5)>>
<<if $enemyChance is 5>>
<<goto "SRcorridorenemy">>
<</if>>
<<dialogue "" "The passage is completely dark. The light from your flashlight illuminates the path ahead, but everything else remains swallowed by shadows. You can't make out anything beyond it." "description">>
<<addDialogue "" "Suddenly, something moves in the darkness. Drawn to the glow of your flashlight, a man in a patient’s gown emerges from the shadows and lunges at you." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Fight|SRCfight]]">>
<<horizontalEnd>>
<<set $srcff =1>>
<<set $EventE3 = 1>><<set $randomEnemy =random(2)>>
<<if $randomEnemy is 0>>
<<run startAdvancedBattle([
{
type: 'lobotomizedPatient',
hp: 80,
distance: 10,
randomDistance: true,
speed: "3-8",
minMovement: 3,
maxMovement: 8,
damage: 8,
DamageIgnore: {
'pistol': 0.2,
'rifle': 0.0,
'shotgun': 0.0,
'melee': 0.6,
'incendiary': 0.2,
'dragon_breath': 0.0,
'tracer': 0.2,
'9mm': 0.4,
'.45': 0.2,
'slugs': 0.0
}
},
], 'VictoryPassage', true, 'CombatEscape', true)>>
<<elseif $randomEnemy is 1>>
<<run startAdvancedBattle([
{
type: 'madPatient',
hp: 70,
distance: 20,
randomDistance: true,
speed: "3-8",
minMovement: 3,
maxMovement: 8,
damage: 10,
DamageIgnore: {
'pistol': 0.5,
'rifle': 0.2,
'shotgun': 0.1,
'melee': 0.4,
'incendiary': 0.2,
'dragon_breath': 0.0,
'tracer': 0.2,
'9mm': 0.4,
'.45': 0.2,
'slugs': 0.0
}
},
], 'VictoryPassage', true, 'CombatEscape', true)>>
<<elseif $randomEnemy is 2>>
<<run startAdvancedBattle([
{
type: 'locoPatient',
hp: 90,
distance: 20,
randomDistance: true,
speed: "3-8",
minMovement: 3,
maxMovement: 8,
damage: 8,
DamageIgnore: {
'pistol': 0.5,
'rifle': 0.2,
'shotgun': 0.1,
'melee': 0.4,
'incendiary': 0.2,
'dragon_breath': 0.0,
'tracer': 0.2,
'9mm': 0.4,
'.45': 0.2,
'slugs': 0.0
}
},
], 'VictoryPassage', true, 'CombatEscape', true)>>
<</if>>
<<set $enemyPresent = false>>
<<if $CaseyCoat is true && $CaseyJacket isnot true>>
<<setAvatarDirect "caseycoatpistol.png">>
<<elseif $CaseyCoat isnot true && $CaseyJacket is true>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<else>>
<<setAvatarDirect "caseypistol.png">>
<</if>><<dialogue "" "You stop in the middle of the hallway. Ahead of you, two open doors lead into dark rooms on either side. One to the left, the other to the right, both shrouded in an unsettling darkness." "description">>
<<if $leftroom1 isnot true && $leftroom2 isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Right Door|SDoor2]]">>
<<addDialogue "" "[[Left Door|SDoor1]]">>
<<horizontalEnd>>
<<elseif $leftroom1 isnot true && $leftroom2 is true>>
<<horizontalStart>>
<<addDialogue "" "[[Left Door|SDoor1]]">>
<<horizontalEnd>>
<<elseif $leftroom1 is true && $leftroom2 isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Right Door|SDoor2]]">>
<<horizontalEnd>>
<</if>>\
<<if $leftroom1 is true && $leftroom2 is true>>
<<horizontalStart>>
<<addDialogue "" "[[Left Room|SRoom1]]">>
<<addDialogue "" "[[Go to small office|SRcorridor]]">>
<<addDialogue "" "[[Go to next hallway|SRcorridor2]]">>
<<addDialogue "" "[[Right Room|SRoom2]]">>
<<horizontalEnd>>
<<elseif $leftroom1 isnot true && $leftroom2 is true>>
<<horizontalStart>>
<<addDialogue "" "[[Go to small office|SRcorridor]]">>
<<addDialogue "" "[[Go to next hallway|SRcorridor2]]">>
<<addDialogue "" "[[Right Room|SRoom2]]">>
<<horizontalEnd>>
<<elseif $leftroom1 is true && $leftroom2 isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Left Room|SRoom1]]">>
<<addDialogue "" "[[Go to small office|SRcorridor]]">>
<<addDialogue "" "[[Go to next hallway|SRcorridor2]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Go to small office|SRcorridor]]">>
<<addDialogue "" "[[Go to next hallway|SRcorridor2]]">>
<<horizontalEnd>>
<</if>>
<<set $enemyPresent = false>><<dialogue "" "You stop at the end of the hallway. You see a door at the far end." "description">>
<<if $srdoorcheck isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Check door|SRCdoor]]">>
<<horizontalEnd>>
<</if>>
<<horizontalStart>>
<<if $srdoorcheck is true>>
<<addDialogue "" "[[Go to small office|SRcorridor1]]">>
<<else>>
<<addDialogue "" "[[Go to small office|SRcorridor1]]">>
<</if>>
<<addDialogue "" "[[Next hallway|Left Corridor]]">>
<<horizontalEnd>>
<<set $srhallway2 = true>>
<<set $enemyPresent = false>>
<<set $enemyChance = random(5)>>
<<if $enemyChance is 5>>
<<goto "SRcorridor2enemy">>
<</if>>
<<addDialogue "" "The door is open." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|SRoom1]]">>
<<addDialogue "" "[[Back|SRcorridor1]]">>
<<horizontalEnd>>
<<dialogue "" "The door is open." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|SRoom2]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|SRcorridor1]]" "center">>
<<if window.gameState.lanternOn>>
<<goto "SRoom2Light">>
<<else>>
<<if $fapperisgone is true>>
<<dialogue "" "The darkness inside the room is absolute. You can't see." "description">>
<<else>>
<<if $fapenemy is true>>
<<dialogue "" "The darkness is complete, and you continue hearing the gasps; the man keeps going." "description">>
<<addDialogue "Casey" "Better get out of here." "talk">>
<<else>>
<<dialogue "" "As you take the first step into the room, a dense darkness engulfs you completely. There’s no trace of light—just an oppressive void that seems to swallow every last flicker of hope. Your eyes don’t adjust. There’s nothing to see." "description">>
<<addDialogue "" "Then, a sound breaks the silence: low, ragged breathing, irregular and skin-crawling. It comes from somewhere in the darkness, far too close for comfort. The breathing doesn’t sound normal. It’s coarse, laced with an unsettling tension you can’t quite identify." "description">>
<<addDialogue "" "I can’t move forward blindly." "thoughts">>
<<addDialogue "Casey" "I’m not taking another step without turning on the flashlight. Whatever that is… I don’t want to trip over it." "talk">>
<</if>>
<</if>>
<<addDialoguePos "" "[[Back|SRcorridor1]]" "center">>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<set $leftroom2 = true>>
<<if window.gameState.lanternOn>>
<<goto "SRcorridor2Light">>
<<else>>
<<switch visited()>>
<<case 1>>
<<dialogue "" "You move forward through the pitch-black hallway, each step cautious on the unseen floor. The darkness is absolute, swallowing everything—except for a faint outline ahead. A door stands at the end of the corridor, close enough to reach." "description">>
<<addDialogue "" "At least there's a way forward…" "thoughts">>
<<default>>
<<dialogue "" "You move forward through the pitch-black hallway, each step cautious on the unseen floor. The darkness is absolute, swallowing everything—except for a faint outline ahead." "description">>
<</switch>>
<<if $srdoorcheck isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Check door|SRCdoor]]">>
<<horizontalEnd>>
<</if>>
<<horizontalStart>>
<<if $srdoorcheck is true>>
<<addDialogue "" "[[Go to small office|SRcorridor1]]">>
<<else>>
<<addDialogue "" "[[Go to small office|SRcorridor1]]">>
<</if>>
<<addDialogue "" "[[Next hallway|Left Corridor]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<set $srhallway2 = true>><<if window.gameState.lanternOn>>
<<goto "SRoom1Light">>
<<else>>
<<dialogue "" "The darkness inside the room is absolute. You reach out your hand in front of your face, hoping to see at least an outline, but there’s nothing. The blackness is so deep it feels heavy, as if the void itself surrounds you—oppressive, suffocating." "description">>
<<addDialogue "" "[[Exit|SRcorridor1]]">>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<set $leftroom1 = true>>
<<dialogue "" "At the end of the hallway, a door stands before you. The handle turns slightly... it seems unlocked." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Open door|Left Corridor]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|SRcorridor2]]" "center">>
<<set $srdoorcheck = true>>
<<if window.gameState.lanternOn>>
<<goto "Left Corridorlight">>
<<else>>
<<dialogue "" "A long, dark hallway stretches ahead of you, the shadows dancing along the walls as if something is watching. At the end of the hallway, you can make out a door." "description">>
<<if $openleftdoor isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Check door|leftdoor]]">>
<<horizontalEnd>>
<</if>>
<<if $openleftdoor is true>>
<<horizontalStart>>
<<addDialogue "" "[[Go to small office|SRcorridor2]]">>
<<addDialogue "" "[[Move through hallway|Left Corridor1]]">>
<<addDialogue "" "[[Entrance|MainLobby]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Go to small office|SRcorridor2]]">>
<<addDialogue "" "[[Move through hallway|Left Corridor1]]">>
<<horizontalEnd>>
<</if>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>><<dialogue "" "As you step into the room, the beam of your flashlight cuts through the darkness, revealing worn walls and a floor coated in dust. In one corner, an old, half-open cabinet stands out, its wood splintered and covered in strange marks." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Check cabinet|Srcabinet]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Exit|SRcorridor1]]" "center">>
<<if $cabinet isnot true>>
<<dialogue "" "As you rummage through the cabinet, your fingers stop at the touch of a small bottle. You find antidepressant pills. They’re small, white, and seem to have been there for a long time." "description">>
<<addDialogue "Casey" " It’s not much, but it could help." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Take antidepressants|cabinetpill]]">>
<<addDialogue "" "[[Get inside|SRLocker]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|SRoom1]]" "center">>
<<else>>
<<dialogue "" "The shelves are empty, only a few crumpled papers and accumulated dust remain. Everything has been looted." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Get inside|SRLocker]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|SRoom1]]" "center">>
<</if>>
<<dialogue "" "You pick up the antidepressants and tuck them into your backpack." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Get inside the locker|SRLocker]]">>
<<addDialogue "" "[[Back|SRoom1]]">>
<<horizontalEnd>>
<<set $cabinet = true>>
<<script>>window.addItemFromDatabase('antidep', 3);<</script>><<addDialogue "" "You slip into the locker and gently shut the door. The space is cramped, but enough to conceal yourself. Darkness wraps around you, and the only sound is your own breathing. You remain still for a few moments, but nothing happens." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Leave|SRoom1]]">>
<<horizontalEnd>>
<<if $fapperisgone isnot true>>
<<goto "SRfapenemy">>
<<else>>
<<dialogue "" "The floor is covered in dark stains, the result of the struggle. The room, once oppressive, is now wrapped in an unsettling silence, broken only by your breathing." "description">>
<<switch visited()>>
<<case 1>>
<<addDialogue "" "I don't know if this is a relief or a nightmare that keeps chasing me." "thoughts">>
<</switch>>
<<if $srcrates isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Search in the crates|cratesearch]]">>
<<horizontalEnd>>
<</if>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|SRcorridor1]]" "center">>
<</if>><<dialogue "" "You rummage through the box and find a plastic bottle, opaque and unlabeled. The cloudy liquid inside looks dangerous. The strong chemical smell makes you step back for a moment. In the box, there are more similar jars, all with broken or crushed caps, as if hastily abandoned. You found a bottle of chemicals." "description">>
<<addImage "img/events/hospitalcrates.png">>
<<horizontalStart>>
<<addDialogue "" "[[Take it|crateschem]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|SRoom2]]" "center">>
<<switch visited()>>
<<case 1>>
<<dialogue "" "As you enter the room, the beam of the flashlight reveals a disturbing scene. The man is there, in a corner on the other side of the room, masturbating without the slightest reaction to your presence. The flashlight's light seems to have no effect on him; he continues as if you weren’t there." "description">>
<<addDialogue "Casey" " I can’t believe what I’m seeing… What’s wrong with these people?" "talk">>
<<addDialogue "" "They seem lobotomized, but for what purpose? Uncontrolled reproduction?" "description">>
<<addDialogue "Casey" "This is just absurd..." "talk">>
<<default>>
<<dialogue "" "The man is there, masturbating without the slightest reaction to your presence. The flashlight's light seems to have no effect on him; he continues as if you weren’t there." "description">>
<<addDialogue "Casey" " Why the hell did I come back here?" "talk">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Interrupt him|SRfapenemy2]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Exit|SRcorridor1]]" "center">>
<<set $fapenemy = true>>
<<showNPC "patient" "img/monsters/patients/patient1.png" "Patient">> <<set $srcrates = true>>
<<goto "SRoom2">>
<<dialogue "" "You approach the man cautiously, knowing it's unlikely he'll give you a coherent response. The light from the lantern illuminates his empty face, and his eyes barely seem to register your presence. The sound of his breathing and the patter of your steps are the only things you can hear in the room." "description">>
<<addDialogue "Casey" " Who did this to you? Do you remember anything? Was it Doctor Home?" "talk">>
<<addDialogue "" "The man flinches at being interrupted, letting out a disoriented scream." "description">>
<<addDialogue "Patient" "No! No... no! Aah!" "talk">>
<<addDialogue "" "Then, his eyes fixate on you. He watches you, as if finally noticing your presence. A strange gleam appears in his gaze." "description">>
<<addDialogue "Patient" "You... real?" "talk">>
<<addDialogue "" "This guy can't think straight... He's completely lost. He's not going to know anything useful. But... what have they done to him? And why?" "thoughts">>
<<addDialogue "Casey" " Yes, I'm real..." "talk">>
<<addDialogue "" "Before you can react, the man attacks, his movements erratic but filled with a sudden and violent energy." "description">>
<<addDialogue "Patient" "Give me! Be mine!" "talk">>
<<addDialogue "Casey" " Fuck!" "talk">>
<<addDialoguePos "" "[[Fight|SRFenemy]]" "center">>
<<showNPC "patient" "img/monsters/patients/patient1.png" "Patient">>
<<set $EventE5 = 1>>
<<set $Sroom2 = 1>><<run startAdvancedBattle([
{
type: 'fappingPatient',
hp: 90,
distance: 20,
randomDistance: true,
speed: "3-8",
minMovement: 3,
maxMovement: 8,
damage: 8,
DamageIgnore: {
'pistol': 0.2,
'rifle': 0.0,
'shotgun': 0.0,
'melee': 0.6,
'incendiary': 0.2,
'dragon_breath': 0.0,
'tracer': 0.2,
'9mm': 0.4,
'.45': 0.2,
'slugs': 0.0
}
},
], 'VictoryPassage', true, 'CombatEscape', true)>>
<<if $CaseyCoat is true && $CaseyJacket isnot true>>
<<setAvatarDirect "caseycoatpistol.png">>
<<elseif $CaseyCoat isnot true && $CaseyJacket is true>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<else>>
<<setAvatarDirect "caseypistol.png">>
<</if>><<dialogue "" "The door doesn't budge. You try pushing it again, but it remains firmly in place." "description">>
<<addDialogue "" "The latch is set from this side, I can open." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Open door|leftdooropen]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Left Corridor]]" "center">>
<<if window.gameState.lanternOn>>
<<goto "Left Corridor1light">>
<<else>>
<<dialogue "" "The hallway is enveloped in near-total darkness. You can barely make out the shadows that rise, and the silence is unbearable, broken only by the creaking of your footsteps." "description">>
<<if $openA1door isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Check door|cardAdoor]]">>
<<horizontalEnd>>
<</if>>
<<if $openA1door is true>>
<<horizontalStart>>
<<addDialogue "" "[[Security storage|Aroom]]">>
<<addDialogue "" "[[Back through hallway|Left Corridor]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Back through hallway|Left Corridor]]">>
<<horizontalEnd>>
<</if>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>><<dialogue "" "You find yourself in front of a door with a magnetic lock. The slot clearly indicates that you need a level A magnetic card to open it. The door seems sturdy, and there’s no way to force it open." "description">>
<<addImageV "img/events/a1door.png">>
<<if $cardA is true>>
<<horizontalStart>>
<<addDialogue "" "[[Use card|cardAdooropen]]">>
<<horizontalEnd>>
<</if>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Left Corridor1]]" "center">>
<<if $openGlass is true>>
<<goto "Aroom2">>
<<else>>
<<dialogue "" "The room is dimly lit, with emergency lights casting a faint, flickering glow. Dusty metal shelves line the walls, and scattered papers lie on the floor. On one wall, a reinforced glass display case stands out. Inside, resting on a metal mount, is a sturdy-looking shotgun." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Check reinforced glass|reinforcedglass]]">>
<<if $AmmoTake isnot true>>
<<addDialogue "" "[[Check shelves|ammoescopeta]]">>
<</if>>
<<horizontalEnd>>
<</if>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Left Corridor1]]" "center">>
<<if $openleftdoor isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Check door|leftdoor]]">>
<<horizontalEnd>>
<</if>>
<<if $openleftdoor is true>>
<<horizontalStart>>
<<addDialogue "" "[[Go to small office|SRcorridor2]]">>
<<addDialogue "" "[[Move through hallway|Left Corridor1]]">>
<<addDialogue "" "[[Entrance|MainLobby]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Go to small office|SRcorridor2]]">>
<<addDialogue "" "[[Move through hallway|Left Corridor1]]">>
<<horizontalEnd>>
<</if>><<dialogue "" "The hallway stretches into the darkness, illuminated only by the faint light of your flashlight. As you move forward, the shadows seem to take shape, casting fleeting figures of phantoms that quickly flee from the light, vanishing in an instant." "description">>
<<if $openA1door isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Check door|cardAdoor]]">>
<<horizontalEnd>>
<</if>>
<<if $openA1door is true>>
<<horizontalStart>>
<<addDialogue "" "[[Security storage|Aroom]]">>
<<addDialogue "" "[[Move through hallway|Left Corridor]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Move through hallway|Left Corridor]]">>
<<horizontalEnd>>
<</if>>
<<dialogue "" "The magnetic lock clicks open, and the heavy door slides aside with a low hiss." "description">>
<<addDialogue "Casey" "Let's see what's in here." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|Aroom]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Left Corridor1]]" "center">>
<<set $openAdoor = true>><<dialogue "" "You take a moment to examine the mechanism before sliding the latch with a dry click. You push again, and this time the door creaks open, revealing the room beyond." "description">>
<<addDialogue "" "Stepping forward, you immediately recognize the place: the main hall. The dim light from the flickering lamps casts shadows over the old seats and the dust-covered floor." "description">>
<<addDialogue "Casey" " Looks like I’m back in the main hall." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|MainLobby]]">>
<<horizontalEnd>>
<<set $openleftdoor = true>><<dialogue "" "The door is locked." "description">>
<<addDialoguePos "" "[[Back|MainLobby]]" "center">>
<<set $doorchek = 1>>
<<dialogue "" "The doctor watches you with skepticism as you approach, raising an eyebrow." "description">>
<<addDialogue "Dr. Home" "Oh, don't you have an urgent call to take, detective? I hope the line interferences doesn't interrupt your important investigation." "talk">>
<<addDialogue "" "As he finishes his sentence, the doctor flashes a carefree smile." "description">>
<<addDialogue "" "I don't like that passive-aggressive tone... it gets on my nerves... it's hard to hold myself back." "thoughts">>
<<addDialogue "Casey" " Maybe, but there's no signal here." "talk">>
<<addDialogue "Dr. Home" "The lines tend to have... interference. But if you step outside, you might have better luck." "talk">>
<<addDialoguePos "" "[[Back|MainLobby]]" "center">>
<<showNPC "home" "img/characters/doctor/dochome.png" "Dr. Arklich Home">>
<<dialogue "" "The hallway near the entrance is in complete disarray, with the floor covered in dust and shattered glass fragments. The walls, chipped and deteriorated, seem to struggle to maintain their original shape, resisting collapse and threatening to take the entire building down with them." "description">>
<<horizontalStart>>
<<if $maindooropen is true>>
<<if $MHRD isnot true>>
<<addDialogue "" "[[Right Door|MHrightdoor1]]">>
<<else>>
<<addDialogue "" "[[Little storage|MHrightroom1]]">>
<</if>>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<if $MCDopen isnot true>>
<<addDialogue "" "[[Move through hallway|Main Hallway2]]">>
<<else>>
<<addDialogue "" "[[Go to Grand Hall|Main Hallway2]]">>
<</if>>
<<addDialogue "" "[[Entrance|MainLobby]]">>
<<horizontalEnd>>
<<if $maindooropen is true && $EndAberrationEvent isnot true && $MHenemy isnot true && $darksituation isnot tue>>
<<script>>
setTimeout(() => {
audioSystemCrossfade('darksituation.mp3', 4000);
}, 1000);
<</script>>
<<set $darksituation = true>>
<</if>>
<<if $brokeSister isnot true>>
<<createAdvancedEvent "SanityStress" 0 "<" "passage" "brokeSister" false "sanity">>
<</if>><<dialogue "" "The door leading to the right hallway is closed from the other side." "description">>
<<addDialoguePos "" "[[Back|MainLobby]]" "center">>
<<set $corridorchek = 1>><<dialogue "" "You move cautiously, observing the surroundings. The room is shrouded in darkness, but the light from a broken lamp in the ceiling illuminates just enough for you to distinguish the details. Dust covers the floor, and the walls, a crumbling gray, seem to tell stories of abandonment. At what seems to be the reception desk, a broken chair is overturned, and where there was once nothing, now rests a folder, placed on the desk. The air is thick with the smell of mold, and an uneasy feeling washes over you, as if something is lurking in the shadows." "description">>
<<if $corridorchek is 1 && $doorcorridorchek is 1 && $doorchek is 1>>\
<<addDialogue "" "That’s strange, I’m sure this wasn’t here before." "thoughts">>
<<else>>\
<<addDialogue "" "That’s strange, A carpet, in perfect condition." "thoughts">>
<</if>>\
<<addDialogue "" "The folder is surprisingly new, with the corners intact and the paper still crisp, as if someone had left it there recently." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Check the folder|checkfolder]]">>
<<horizontalEnd>>
<<script>>
completeQuestStage("first_quest");
<</script>>
<<dialogue "" "You push the main door cautiously, allowing the cold air inside to envelop you. You take your first steps and enter the Charles Francis with determination. Once you're in the middle of the room, you carefully observe your surroundings, noticing the dimness that fills the space. The faint light from a broken lamp in the ceiling doesn't help much, but it's enough to make out the details." "description">>
<<addDialogue "" "As you immerse yourself in the atmosphere, you begin to recall what was said about this place. The fire that destroyed the Charles Francis psychiatric hospital 15 years ago. The news spoke of a catastrophe, a fire that ravaged everything, leaving the place unrecognizable." "description">>
<<addDialogue "" "There are signs of fire, but not as severe as they described." "thoughts">>
<<addDialogue "" "Some walls show smoke stains, and there are areas where the heat seems to have left its mark, but nothing like a "total destruction"." "description">>
<<addDialogue "" "Typical sensationalism of the media. The fire wasn't as devastating as they said. The place is almost intact, well, after 15 years of abandonment..." "thoughts">>
<<addDialogue "Casey" "It's not what I expected, but there's no turning back." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|MainLobby]]">>
<<horizontalEnd>>
<<set $firstenter = 1>>
<<dialogue "" "You scan the main hall, your eyes sweeping across the room, but there's no sign of the doctor." "description">>
<<addDialogue "Casey" " Damn it!" "talk">>
<<addDialogue "" "Not a single trace of that bastard Home. It was clear that he wasn’t going to be waiting for me to answer my questions." "thoughts">>
<<addDialogue "Casey" " But there’s no way he could’ve just vanished… He has to be somewhere." "talk">>
<<addDialogue "" "You search every corner, every shadow, but nothing moves. No sound, no presence—just an unsettling emptiness." "description">>
<<addDialogue "" "If there’s one place he’d retreat to, it’s his office. He’s probably there." "thoughts">>
<<addDialogue "Casey" " I need to find that elusive rat." "talk">>
<<addDialoguePos "" "[[Continue|MainLobby]]" "center">>
<<set $mhr = true>>
<<script>>
completeQuestStage("main_hall_quest");
<</script>>
<<script>>
addQuestWithStages(
"Doctor's office",
"Dr. Home has become your prime suspect. Navigate through the psychiatric hospital to locate his office and confront him directly. All the evidence points to him—you need concrete answers before it's too late.",
[
"Locate Dr. Home’s office somewhere within the hospital.",
"Confront Dr. Home and demand the truth about his involvement."
],
"📋",
"main",
"home_quest", // Custom ID
"img/quest.png" // Quest image
);
// Add stage images
if (window.questSystem && window.questSystem.quests["home_quest"]) {
window.questSystem.quests["home_quest"].stageImages = [
"img/quest.png",
"img/quest.png"
];
}
State.variables.homeQuestId = "home_quest";
<</script>><<dialogue "" "You stop in front of the main door, the same one the doctor shut in your face when you tried to get in. There’s no lock, no key—just a makeshift blockade meant to keep you from forcing your way inside" "description">>
<<horizontalStart>>
<<addDialogue "" "[[Open|maindooropen]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|MainLobby]]" "center">>
<<dialogue "" "You slide your hand over the metal latch and pull it back with a sharp click. A chain dangles loosely from the handle, barely wrapped around it to slow you down. You push it aside with ease." "description">>
<<addDialogue "Casey" " Alright, I’ll leave it open." "talk">>
<<addDialogue "" "The door creaks slightly as you push it. Now, the main entrance is open again." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Exit|PsiquiatricEntrance]]">>
<<addDialoguePos "" "[[Back|MainLobby]]" "center">>
<<horizontalEnd>>
<<set $maindoorclosed = false>>
<<set $maindooropen = true>>
<<script>>
completeQuestStage("main_hall_quest");
<</script>><<dialogue "" "You open the folder carefully, feeling a mix of curiosity and distrust. On the first page, you find what seems to be a medical record, with a name incomplete and crossed out. You can only partially make out the title: "Subject Alpha-IX." The document talks about its characteristics, with confusing details and phrases that repeat over and over. It mentions "unstable conditions," "continuous observation," "colossal strength", and a "special procedure," but there's not enough clarity on what exactly it's referring to. The information is sparse." "description">>
<<addDialogue "" "What the hell, it seems like it's talking about some sort of treatment." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Next page|checkfolder2]]">>
<<horizontalEnd>>
<<dialogue "" "On the next page, the section title immediately catches your attention: Patient – Codename: Subject 38. The description is detailed, almost obsessive: "Blonde, fair skin, long hair, sky-blue eyes, pure..." But it's not just a superficial physical description. The report continues with medical details: "Ideal physical build, fast metabolism, excellent recovery capacity." It mentions that her skin is "unusually smooth," without signs of scars or marks, and specifies that her height and weight fall within normal parameters for her age. The blue eyes are described particularly, as a "striking feature that may influence the psychological reactions of the subjects." The way these observations are written seems like a clinical analysis that goes beyond mere appearance, as if they were evaluating something more than just the physical." "description">>
<<addDialogue "" "Experimental process has not yet begun. She needs to be prepared and closely observed, her physical profile is ideal for the next phase of testing. Says the comment at the bottom." "description">>
<<addDialogue "" "The report doesn't stop there, as it continues with details of the other two patients. One of their descriptions catches your attention: "Red hair, fair skin, green eyes." The other is described as "dark hair, olive skin, brown eyes." Both subjects are in the preliminary stage, being observed and monitored to assess their suitability for the next step in the experiments. The language used is cold, technical, as if each of these details is just another characteristic on a clinical list. However, something stands out: a recurring mention of "enabled pregnancy," a cryptic term that appears several times in relation to both patients. You don’t fully understand what it refers to, but the term sounds disturbing, as if it’s related to some specific procedure, something that goes beyond simple medical care." "description">>
<<addDialogue "" "I need to know more." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Next page|checkfolder3]]">>
<<horizontalEnd>>
<<dialogue "" "The next page stops you immediately with a title that makes you hesitate for a moment: Subject 4 - Advanced Stage. Unlike the other reports, this one has fewer descriptive details about the patient's physical appearance. Instead, the report quickly delves into the details of their medical condition, much more concerning and disturbing." "description">>
<<addDialogue "" "The preparation phase is complete. The incubation process has begun, you read in the first line. The report then describes how the subject is undergoingaccelerated cellular modification, implying a drastic change in their biology." "description">>
<<addDialogue "" "Incubation process? What the fuck is this?" "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Continue reading|checkfolder4]]">>
<<horizontalEnd>><<dialogue "" "A faint sound of footsteps breaks the silence in the room, and you quickly turn, alert. In the dim light, a tall figure emerges, with an elegant posture, wearing a black suit jacket and jeans that stand out against the decaying surroundings." "description">>
<<addDialogue "" "In one hand, he holds a cane with a decorated handle, but you notice that he isn't carrying it as a mere accessory. His posture and the way he leans on it reveal that he needs it. As he steps forward, his movement is stiff, as if each step causes him intense pain. The cane strikes the floor with a steady, almost heavy rhythm, echoing through the silent room. His expression remains calm, but there's a faint hint of discomfort on his face—a fleeting gesture that suggests the pain in his leg never truly leaves him." "description">>
<<timed 5s>>
<<addDialogue "Dr. Home" "Am I still surprising our new visitors after all this time? You weren't expecting company in this place, were you?" "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Who are you?|TalkDocHome]]">>
<<horizontalEnd>>
<</timed>>
<<timed 4s>>
<<showNPC "home" "img/characters/doctor/dochome.png" "Dr. Arklich Home">>
<<unlockCharacterOnly 10>>
<</timed>>
<<set $DocHometalk = 1>>
<<script>>
playSoundDirect('footsteps.mp3');
<</script>>
<<dialogue "Casey" "Who are you?" "talk">>
<<addDialogue "Dr. Home" "My name is Arklich Home. I worked here many years ago." "talk">>
<<addDialogue "Casey" "What are you doing here?" "talk">>
<<addDialogue "Dr. Home" "I could ask you the same thing, Miss..." "talk">>
<<addDialogue "" "This guy... is not an idiot." "thoughts">>
<<addDialogue "Casey" "I'm a detective, my name is Casey, and I'm investigating a multiple abduction case." "talk">>
<<addDialogue "Dr. Home" "Hmm... Interesting... Glad to meet you, Detective Casey." "talk">>
<<addDialogue "Casey" "Now, could you answer my question, Doctor Home?" "talk">>
<<addDialogue "Dr. Home" "I come by from time to time. This place... has something peculiar about it, don't you think?" "talk">>
<<addDialogue "" "He's lying or... maybe he's crazy." "thoughts">>
<<addDialogue "Casey" "And those documents? The folder was on the table, is it yours?" "talk">>
<<addDialogue "Dr. Home" "Ah, those... They're my old cases. I kept them after the fire, though not everyone understands why. Some are too valuable to leave behind." "talk">>
<<addDialogue "" "I don’t buy it. Something doesn’t add up with his answer." "thoughts">>
<<addDialogue "Casey" "Valuable? After all this time? And why are you carrying them? Did you come just to pick them up, 15 years later?" "talk">>
<<addDialogue "Dr. Home" "There are things you don’t forget, Detective. Some documents are more durable than others, or simply better protected." "talk">>
<<addDialogue "" "Better protected? Ah, after 15 years? I don't believe so." "thoughts">>
<<addDialogue "Casey" "But how can they still be relevant? After all this time... and the fire, why keep them?" "talk">>
<<addDialogue "Dr. Home" "Some cases need to be revisited, even after time passes. The memory of what happened here... carries more weight than you might think. Only those who lived through it would understand why these documents are important." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Ask about incubation process|TalkDocHome1]]">>
<<horizontalEnd>>
<<showNPC "home" "img/characters/doctor/dochome.png" "Dr. Arklich Home">><<dialogue "Casey" "But what does the "incubation process" have to do with all of this? That doesn't sound like something related to mental disorders." "talk">>
<<addDialogue "Dr. Home" "Ah, the "incubation process." It's a term sometimes used to describe certain aspects... of human physiology." "talk">>
<<addDialogue "" "Another lie... He must think I'm stupid." "thoughts">>
<<addDialogue "Casey" "I see. But again, I don't understand how that connects to the patients' mental conditions." "talk">>
<<addDialogue "Dr. Home" "It's simply a matter of terminology, Detective. Not everything we deal with here is necessarily related to mental health. Physical or biological conditions can influence the mind. But, as I mentioned, these are... technical aspects that aren't always immediately understood." "talk">>
<<addDialogue "" "He's clearly hiding something." "thoughts">>
<<addDialogue "Casey" "Hmm, "technical." I find it curious that something as specific as the "incubation process" appears in your documents." "talk">>
<<addDialogue "Dr. Home" "As I told you, Detective, these terms are used in contexts that not everyone comprehends. Some cases are so complex that their details become difficult to explain without losing focus. Sometimes, the darkest details provide the truest understanding of something as intricate as human behavior. But I doubt you would understand." "talk">>
<<addDialogue "Casey" "I don't appreciate being underestimated, Doctor. I'm here to uncover the truth, and vague explanations won't deter me." "talk">>
<<addDialogue "Dr. Home" "It's not my intention to underestimate you, Detective. Some things in life cannot be explained so simply, not even to those who believe every question has an immediate answer. But... I understand your curiosity." "talk">>
<<addDialogue "" "At that moment, the doctor calmly extends his hand toward the folder, his movements unhurried, as if everything were proceeding exactly as planned." "description">>
<<addDialogue "Dr. Home" "I believe you've seen enough, Detective. If you truly have more questions, it would be best to address them in a more formal setting... at another time and in a more... appropriate manner." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[I don't need your lessons|TalkDocHome2]]">>
<<addDialogue "" "[[Give the documents]]">>
<<horizontalEnd>>
<<showNPC "home" "img/characters/doctor/dochome.png" "Dr. Arklich Home">><<dialogue "Casey" "I'm not here for you to give me lessons on how to do my job, Doctor. I'm investigating, and what I've found in these documents... has nothing to do with what you've told me." "talk">>
<<addDialogue "" "The look the doctor gives you hardens for a moment, a slight glimmer of annoyance flashing across his face, as if the situation is starting to make him uncomfortable." "description">>
<<addDialogue "Dr. Home" "This isn't about lessons, Detective. It's about what's legal and what's not. Looking at patient records without a warrant... that's a crime. I shudder to think what that could mean for your investigation. You shouldn't have touched those documents, Detective. It's not just a lack of respect toward me, but also toward the patients who placed their trust in this institution." "talk">>
<<addDialogue "" "Shit, he’s right, he’s got me cornered." "thoughts">>
<<addDialogue "" "The doctor's gaze softens again, and without retracting his hand, he continues." "description">>
<<addDialogue "Dr. Home" "If you return it now, I'll forget about the matter and be happy to continue answering your questions..." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Give the documents|Give the documents2]]">>
<<horizontalEnd>>
<<set $UnKindGirl = 1>>
<<showNPC "home" "img/characters/doctor/dochome.png" "Dr. Arklich Home">><<dialogue "" "You can feel the weight of the moment bearing down on you, but with gritted teeth, you hand the documents over to Doctor Home." "description">>
<<addDialogue "Casey" "Here. I’m done with this..." "talk">>
<<addDialogue "Dr. Home" "I knew you’d come around, Detective. In the end, reason always wins." "talk">>
<<addDialogue "" "The silence that follows is suffocating, almost unbearable. The air feels like it’s being sucked out of your lungs, yet the doctor remains calm, unaffected. His expression stays unreadable as you struggle internally, fighting the rising feeling of helplessness. You’ve given in, but something inside you refuses to break. The pieces of the game aren’t in place yet." "description">>
<<addDialogue "" "This isn’t over, Home. It’s just beginning." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Ask about Subject Alpha-IX|nomorequestions]]">>
<<horizontalEnd>>
<<showNPC "home" "img/characters/doctor/dochome.png" "Dr. Arklich Home">>
<<dialogue "Casey" "Doctor Home, I want to ask you a couple of questions about the subject..." "talk">>
<<addDialogue "" "Just at that moment, the sound of your phone abruptly interrupts the conversation. The ringtone echoes powerfully through the empty room as you look at the phone in disbelief. On the screen, the name of Mayor Quentin appears." "description">>
<<addDialogue "Dr. Home" "From your expression, I'd say it looks like an important call..." "talk">
<<addDialogue "" "Who does this guy think he is?" "thoughts">>
<<addDialogue "Casey" "Maybe..." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Answer the call|answercalldoctor]]">>
<<horizontalEnd>>
<<showNPC "home" "img/characters/doctor/dochome.png" "Dr. Arklich Home">>
<<timed 2s>>
<<script>>
playSoundDirect('codec.mp3');
<</script>>
<</timed>>
<<timed 4s>>
<<script>>
playSoundDirect('codec.mp3');
<</script>>
<</timed>>
<<timed 6s>>
<<script>>
playSoundDirect('codec.mp3');
<</script>>
<</timed>>
<<timed 8s>>
<<script>>
playSoundDirect('codec.mp3');
<</script>>
<</timed>><<dialogue "" "You can feel the weight of the moment bearing down on you, but with gritted teeth, you hand the documents over to Doctor Home." "description">>
<<addDialogue "Casey" "Here. I’m done with this..." "talk">>
<<addDialogue "Dr. Home" "I knew you’d come around, Detective. In the end, reason always wins." "talk">>
<<addDialogue "" "The silence that follows is suffocating, almost unbearable. The air feels like it’s being sucked out of your lungs, yet the doctor remains calm, unaffected. His expression stays unreadable as you struggle internally, fighting the rising feeling of helplessness. You’ve given in, but something inside you refuses to break. The pieces of the game aren’t in place yet." "description">>
<<addDialogue "" "This isn’t over, Home. It’s just beginning." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Ask about Subject Alpha-IX|nomorequestions]]">>
<<horizontalEnd>>
<<showNPC "home" "img/characters/doctor/dochome.png" "Dr. Arklich Home">><<dialogue "" "You answer the call, but the sound is distorted, a tangle of static filling the space. You adjust the volume, but no matter how many times you try, all you can hear are erratic, incomprehensible noises. There is no voice, only interference. The screen still shows Quentin's name, but his words never reach you." "description">>
<<addDialogue "Casey" " What the...?" "talk">>
<<addDialogue "" "You hang up, frustrated by the failed call, and look at the phone in your hands. The doctor, with a calmness that seems almost calculated, watches you before offering a piece of advice." "description">>
<<addDialogue "Dr. Home" "I'm afraid the signal inside here is... unstable, likely due to the deterioration of the place. I suggest you step outside, perhaps you'll have better luck and manage to catch the call." "talk">>
<<addDialogue "" "How convenient... I’m not sure I should go outside... but I don’t think the mayor would call if it wasn’t important." "thoughts">>
<<addDialogue "Casey" " I’ll step outside to take the call. Please stay here. I’d like to ask you a few more questions." "talk">>
<<addDialogue "" "The doctor smiles widely with satisfaction, as if he had just completed a puzzle by placing the final piece." "description">>
<<addDialogue "Dr. Home" "Of course, Detective. I'll be here, waiting for your return. I’m looking forward to hearing your pertinent questions." "talk">>
<<addDialogue "" "Anyway you wouldn't be able to get very far with your injured leg." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[I'll come back|MainLobby]]">>
<<horizontalEnd>>
<<showNPC "home" "img/characters/doctor/dochome.png" "Dr. Arklich Home">>
<<script>>
playSoundDirect('staticphone.mp3');
<</script>><<dialogue "" "The door that was previously closed is now open." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|MHrightroom1]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|MainLobby]]" "center">>
<<set $MHRD = true>>
<<if window.gameState.lanternOn>>
<<goto "MHrightroom1Light">>
<<else>>
<<dialogue "" "A narrow and cluttered space, with shelves filled with cleaning supplies in worn-out bottles. Dirty rags, buckets, and a broken mop rest in a corner. The air carries a faint smell of old chemicals and stagnant moisture." "description">>
<<addDialogue "Casey" "I can't see anything useful." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Exit|Main hallway]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<dialogue "" "The main hallway stretches in the dim light, with flickering lights barely illuminating the cracked walls. Closed doors on either side seem to hide forgotten secrets, while a heavy, damp air fills the space. The silence is eerie." "description">>
<<horizontalStart>>
<<if $maindooropen is true>>
<<if $MHleftdoor isnot true>>
<<addDialogue "" "[[Left Door|MHleftdoor]]">>
<</if>>
<<if $MHrightdoor isnot true>>
<<addDialogue "" "[[Right Door|MHrightdoor]]">>
<</if>>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<if $maindooropen is true>>
<<if $MHleftdoor is true>>
<<addDialogue "" "[[Lockers room|MHleftroom]]">>
<</if>>
<<if $MHrightdoor is true>>
<<addDialogue "" "[[Yellow elevators|MHrightroom]]">>
<</if>>
<</if>>
<<if $MCDopen isnot true>>
<<addDialogue "" "[[Move through hallway|Main Hallway3]]">>
<<else>>
<<addDialogue "" "[[Go to Grand Hall|Main Hallway3]]">>
<</if>>
<<addDialogue "" "[[Go to entrance|Main hallway]]">>
<<horizontalEnd>>
<<if $brokeSister isnot true>>
<<createAdvancedEvent "SanityStress" 0 "<" "passage" "brokeSister1" false "sanity">>
<</if>><<if $MHSearch isnot true>>
<<dialogue "" "The storage room is a small, cluttered space with dust-covered shelves and boxes stacked in the corners. The light from your flashlight reveals old tools and remnants of forgotten materials." "description">>
<<else>>
<<dialogue "" "You search every corner of the room, but everything is either empty or useless. You sigh in frustration. There’s nothing useful left here." "description">>
<</if>>
<<horizontalStart>>
<<if $MHSearch isnot true>>
<<addDialogue "" "[[Search something|MHSearch]]">>
<</if>>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Exit|Main hallway]]" "center">>
<<if $mhlockpick isnot true>>
<<dialogue "" "You search through the shelves, pushing aside worn-out bottles and you find 2 lockpick." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take lockpicks|MHSearch1]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|MHrightroom1]]" "center">>
<<else>>
<<dialogue "" "You search through the shelves, the bottle of chemicals stills there." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take lockpicks|MHSearch3]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|MHrightroom1]]" "center">>
<</if>><<dialogue "" "You take the lockpicks and slip them into your backpack." "description">>
<<addDialogue "" "The metal is rusted, and the handle is somewhat worn, but it might still be useful." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Search more|MHSearch2]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|MHrightroom1]]" "center">>
<<script>>
window.giveLockpicks(2)
<</script>>
<<set $mhlockpick = true>>
<<dialogue "" "You grab the chemicals and store it in your backpack." "description">>
<<addDialoguePos "" "[[Back|MHrightroom1]]" "center">>
<<script>>
const itemKey = 'chemicals';
const itemName = 'Bottle of chemicals';
const itemDescription = 'A bottle containing some unknown chemical, as its label has been worn away over time.';
const itemValue = 50;
const imagePath = `img/items/special/chemicals.png`;
window.itemDatabase[itemKey] = {
name: itemName,
description: itemDescription,
category: "special",
image: imagePath,
stackable: true,
maxStack: 1,
value: itemValue,
weight: 0.5,
isSellable: true,
};
window.ShopSystem.sellPrices[itemName] = {
buy: itemValue,
sell: Math.floor(itemValue * 0.75),
stock: 1,
img: imagePath
};
//Adding item ro inventory
const item = window.createItemInstance(itemKey, 1);
const result = window.InventorySystem.addItem(item);
if (result && window.ItemNotificationSystem) {
window.ItemNotificationSystem.show(itemKey, 1, `${itemName} acquired!`);
}
window.ShopSystem.populateSellItems();
<</script>>
<<set $MHSearch = true>>
<<dialogue "" "As you continue exploring the dark halls of the asylum, something faintly glimmers on a dusty table. Approaching, you find a small bottle of chemicals, its label barely legible and the liquid inside murky. The pungent smell makes you wrinkle your nose; something about its appearance tells you it shouldn't be there. You find a boittle of chemicals." "description">>
<<addDialogue "" "They're not in the best condition..." "thoughts">>
<<if $FranklinMeet isnot true>>
<<addDialogue "Casey" "I don't know why the hell I want this... anyway." "talk">>
<<else>>
<<addDialogue "Casey" " Maybe Franklin will be interested." "talk">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Take it|MHSearch3]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Leave|MHrightroom1]]" "center">>
<<dialogue "" "The door is open now." "description">>
<<addDialogue "" "Someone's been through here, opening doors..." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|MHleftroom]]">>
<<addDialogue "" "[[Back|Main Hallway2]]">>
<<horizontalEnd>>
<<if window.gameState.lanternOn>>
<<goto "MHleftroomLight">>
<<else>>
<<dialogue "" "The darkness is absolute. You can't see anything." "description">>
<<addDialoguePos "" "[[Exit|Main Hallway2]]" "center">>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<set $MHleftdoor = true>><<dialogue "" "You push the door, and it shifts, indicating it's unlocked." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|MHrightroom]]">>
<<addDialogue "" "[[Back|Main Hallway2]]">>
<<horizontalEnd>>
<<if window.gameState.lanternOn>>
<<goto "MHrightroomLight">>
<<else>>
<<dialogue "" "The darkness is absolute. You can't see anything." "description">>
<<addDialoguePos "" "[[Exit|Main Hallway2]]" "center">>
<</if>>
<<set $MHrightdoor = true>><<dialogue "" "The small, cluttered room is filled with dust and old furniture. An aging table sits in the center, covered in crumpled papers, with a half-toppled chair beside it. Against the wall, rusted lockers and a worn-out filing cabinet with moisture-damaged documents complete the scene." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Check first loocker|FLleftroom]]">>
<<addDialogue "" "[[Check second loocker|SLleftroom]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Main Hallway2]]" "center">>
<<dialogue "" "The locker door is jammed and cannot be opened." "description">>
<<if $MHfight is 1>>
<<addDialogue "Casey" "Shit!" "talk">>
<</if>>
<<addDialoguePos "" "[[Back|MHleftroom]]" "center">>
<<dialogue "" "You open the locker, it's empty." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Get inside|MHlockerinside1]]">>
<<addDialogue "" "[[Back|MHleftroom]]">>
<<horizontalEnd>>
<<dialogue "" "You slip into the locker and carefully close the door. Inside, the space is tight but enough to hide. Darkness surrounds you, and the only sound is your own breathing. You stay still for a few seconds, but nothing happens. Everything is quiet." "description">>
<<addDialogue "" "If danger is near, this could be a good hiding spot.
But you can't stay here forever." "thoughts">>
<<addDialoguePos "" "[[Exit|MHleftroom]]" "center">>
<<if $MHfight is 1>>
<<goto "MHpatientskip">>
<</if>>
<<dialogue "" "The door swings open slowly on its hinges. Through the gap in the locker, you see a shadow move in the dim light—a patient advancing slowly. Their footsteps echo through the room, unhurried, searching the space." "description">>
<<addDialogue "Patient" "Nobody..." "talk">>
<<addDialogue "" "So close..." "thoughts">>
<<addDialogue "" "The patient walks for a few more seconds before turning around and leaving the way they came. Silence fills the room once again." "description">>
<<addDialoguePos "" "[[Back|MHleftroom]]" "center">>
<<set $MHenemy = false>>
<<set $MHfight = 2>>
<<removecountdown>>
<<script>>
setTimeout(() => {
audioSystemCrossfade('darksituation.mp3', 4000);
}, 1000);
<</script>>
<<switch visited()>>
<<case 1>>
<<dialogue "" "You push the door open and step into a wide, silent room. To your left, you find yellow elevators with paint nearly worn away. To your right, several waiting chairs are lined up against the wall, covered in dust." "description">>
<<addDialogue "" "The windows, completely boarded up with old planks, block any trace of outside light, shrouding the room in an eerie gloom." "description">>
<<addDialogue "" "This place seems like paradise..." "thoughts">>
<<addDialogue "Casey" " For those running from civilization." "talk">>
<<default>>
<<dialogue "" "You enter a silent room. To the left, the elevators stand still; to the right, dusty chairs are lined up against the wall. The boarded-up windows plunge the room into an eerie gloom." "description">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Elevators|Yellowelevator]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Main Hallway2]]" "center">><<switch visited()>>
<<case 1>>
<<dialogue "" "You approach the elevators. The button panel is somewhat worn, but still visible." "description">>
<<default>>
<<dialogue "" "The yellow elevators stand right in front of you." "description">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Call elevator|EYcall]]">>
<<if $YellowElevatorInspect isnot true>>
<<addDialogue "" "[[Inspect elevator|EYinspect]]">>
<</if>>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|MHrightroom]]" "center">><<switch visited()>>
<<case 1>>
<<dialogue "" "You press the button of one of the elevators, but nothing happens. No sound, no sign of it working. You repeat the motion on the other elevator. The same." "description">>
<<addDialogue "Casey" "It seems the emergency power doesn’t work with the elevators." "talk">>
<<addDialogue "" "I should've figured as much..." "thoughts">>
<<case 2>>
<<dialogue "" "You press the button of one of the elevators, but nothing happens. No sound, no sign of it working. You repeat the motion on the other elevator. The same." "description">>
<<addDialogue "Casey" "Maybe there's a way to restore the power." "talk">>
<<default>>
<<dialogue "" "You press the button of one of the elevators, but nothing happens." "description">>
<</switch>>
<<addDialoguePos "" "[[Back|Yellowelevator]]" "center">><<dialogue "" "You approach the elevator, noticing something strange. On the frame, near the doors, you find recent marks, as if someone had tampered with the controls or the panel. A faint trail of disturbed dust..." "description">>
<<addDialogue "" "Doctor Home... No doubt about it. The marks are too fresh. He was here, there's no question. If he used these elevators... That means they were working. It's possible they were operational just recently. But now, who cut the power? And why?" "description">>
<<addDialogue "Casey" " He probably ordered someone to do it..." "talk">>
<<addDialogue "" "He must've set this up to trap me here..." "description">>
<<addDialogue "Casey" " He probably ordered someone to do it..." "talk">>
<<addDialogue "" "If I want to make something work, I'll have to restore the power. The maintenance room is probably in the basement..." "thoughts">>
<<addDialogue "Casey" "... And the doctor's office is probably upstairs. Anyway, I have to keep going." "talk">>
<<addDialoguePos "" "[[Back|Yellowelevator]]" "center">>
<<if $PowerRestoreQuest isnot true>>
<<set $PowerRestoreQuest = true>>
<<script>>
addQuestWithStages(
"Power Restoration",
"The hospital is shrouded in complete darkness. Your first priority is to locate the maintenance room, though restoring power won't be a simple task—you'll need to figure out what went wrong (No more content for now).",
[
"Find the maintenance room. There might be tools or clues inside.",
"Find the first fuse. It could be hidden somewhere in the lower levels.",
"Find the second fuse. Check staff-only areas or locked storage rooms.",
"Insert the fuses and restore the power from the generator room."
],
"📋",
"main",
"restore_power", // Custom ID
"img/quest.png" // Quest image
);
// Add stage images so completion notifications show the quest image
if (window.questSystem && window.questSystem.quests["restore_power"]) {
window.questSystem.quests["restore_power"].stageImages = [
"img/quest.png", // Stage 1
"img/quest.png", // Stage 2
"img/quest.png", // Stage 3
"img/quest.png" // Stage 4
];
}
State.variables.powerQuestId = "restore_power";
<</script>>
<</if>><<if $MHenemy isnot true>>
<<dialogue "" "The door is locked." "description">>
<<else>>
<<dialogue "" "Someone is banging on the door from the other side; it's about to open." "description">>
<</if>>
<<addDialoguePos "" "[[Back|Main Hallway3]]" "center">>
<<set $doorcorridorchek = 1>>
<<if $MHfight gte 2>>
<<goto "MCDopen">>
<</if>>
<<if $MHenemy is true>>
<<timed 1s>>
<<script>>
playSoundDirect('door.mp3');
<</script>>
<<timed 4s>>
<<script>>
playSoundDirect('door.mp3');
<</script>>
<<timed 4s>>
<<script>>
playSoundDirect('door.mp3');
<</script>>
<<timed 4s>>
<<script>>
playSoundDirect('door.mp3');
<</script>>
<</timed>>
<</timed>>
<</timed>>
<</timed>>
<</if>><<dialogue "" "The eastern end of the hall rises like a massive prison of concrete and metal. One of the high windows is shattered, allowing pale moonlight to spill across the cracked floor. Dust drifts through the air, caught in the glow, revealing old stains on the walls and scattered papers. From here, a hallway leads further east, while another curves back toward the building’s entrance." "description">>
<<horizontalStart>>
<<if $SecurityRoom isnot true>>
<<addDialogue "" "[[Check security door]]">>
<</if>>
<<if $StorageDoor isnot true>>
<<addDialogue "" "[[Check door]]">>
<</if>>
<<if $SecurityRoom is true>>
<<addDialogue "" "[[Security Room|SecurityRoom]]">>
<</if>>
<<if $StorageDoor is true>>
<<addDialogue "" "[[Storage]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Go to bedrooms corridor|CellCorridorA]]">>
<<addDialogue "" "[[Entrace hallway|Main Hallway3]]">>
<<addDialogue "" "[[Grand Hall - West|Grand Hall2]]">>
<<horizontalEnd>>
<<if $IntroVision isnot true>>
<<goto "Event1">>
<</if>>
<<if $IntroVision isnot true>>
<<script>>
stopAllMusic();
<</script>>
<<else>>
<<if $insidesound isnot true>>
<<script>>
setTimeout(() => {
audioSystemCrossfade('lobbytheme.mp3', 4000);
}, 1000);
<</script>>
<<set $insidesound = true>>
<</if>>
<</if>>
<<script>>
window.setLighting(80);
<</script>><<dialogue "" "You stop in front of the cloed door. A dull thud echoes against the wood… then another. There’s a brief pause, just a whisper of silence, before it happens again." "description">>
<<addDialogue "" "Doesn't seem like a rhythmic pattern..." "thoughts">>
<<addDialogue "Casey" "Someone is trying to force its way through." "talk">>
<<timed 3s>>
<<horizontalStart>>
<<addDialogue "" "[[Who’s there?]]">>
<<addDialogue "" "[[Stay silent|Main Hallway3]]">>
<<horizontalEnd>>
<</timed>>
<<set $MHenemy = true>>
<<set $MHfight = 1>>
<<timed 3s>>
<<countdown 20 "Enemydoor">>
<</timed>>
<<timed 2s>>
<<script>>
setTimeout(() => {
audioSystemCrossfade('alert.mp3', 4000);
}, 1000);
<</script>>
<</timed>>
<<timed 2s>>
<<script>>
playSoundDirect('door.mp3');
<</script>>
<</timed>>
<<timed 4s>>
<<script>>
playSoundDirect('door.mp3');
<</script>>
<</timed>>
<<timed 6s>>
<<script>>
playSoundDirect('door.mp3');
<</script>>
<</timed>>
<<timed 8s>>
<<script>>
playSoundDirect('door.mp3');
<</script>>
<</timed>>
<<timed 10s>>
<<script>>
playSoundDirect('door.mp3');
<</script>>
<</timed>>
<<timed 12s>>
<<script>>
playSoundDirect('door.mp3');
<</script>>
<</timed>>
<<timed 14s>>
<<script>>
playSoundDirect('door.mp3');
<</script>>
<</timed>>
<<timed 18s>>
<<script>>
playSoundDirect('door.mp3');
<</script>>
<</timed>>
<<timed 20s>>
<<script>>
playSoundDirect('door.mp3');
<</script>>
<</timed>><<dialogue "" "The door, though not broken, shows clear signs of the violence it endured. The hallway leading to the next room is now accessible, and the dim light reveals its vast interior. Through the opening, the sound of echoes from the psychiatric facility mingles with an unsettling silence, as if the space is waiting for something more." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Grand Hall]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Main Hallway3]]" "center">>
<<set $MCDopen = true>><<dialogue "Casey" "Who's there?" "talk">>
<<addDialogue "" "You don't hear any response; the sound of the blows intensifies, and you can hear the door slowly giving way." "description">>
<<addDialogue "Casey" "What do you want?" "talk">>
<<addDialogue "" "You still don’t hear any response; the door is giving way more and more, it’s about to open." "description">>
<<addDialogue "" "Shit, no answer. I have to brace myself for whatever comes next." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Back|Main Hallway3]]">>
<<horizontalEnd>>
<<timed 1s>>
<<script>>
playSoundDirect('door.mp3');
<</script>>
<<timed 4s>>
<<script>>
playSoundDirect('door.mp3');
<</script>>
<<timed 4s>>
<<script>>
playSoundDirect('door.mp3');
<</script>>
<<timed 4s>>
<<script>>
playSoundDirect('door.mp3');
<</script>>
<</timed>>
<</timed>>
<</timed>>
<</timed>>
<<run startAdvancedBattle([
{
type: 'madPatient',
hp: 70,
distance: 20,
randomDistance: true,
speed: "3-8",
minMovement: 3,
maxMovement: 8,
damage: 10,
DamageIgnore: {
'pistol': 0.5,
'rifle': 0.2,
'shotgun': 0.1,
'melee': 0.4,
'incendiary': 0.2,
'dragon_breath': 0.0,
'tracer': 0.2,
'9mm': 0.4,
'.45': 0.2,
'slugs': 0.0
}
},
], 'VictoryPassage', true, 'CombatEscape', true)>>
<<set $enemyPresent = false>>
<<if $CaseyCoat is true && $CaseyJacket isnot true>>
<<setAvatarDirect "caseycoatpistol.png">>
<<elseif $CaseyCoat isnot true && $CaseyJacket is true>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<else>>
<<setAvatarDirect "caseypistol.png">>
<</if>><<dialogue "" "The door trembles with a creak as something pushes against it. The lock snaps with a sharp crack, and the door slowly swings open, revealing a staggering silhouette in the doorway." "description">>
<<addDialogue "" "It's a man, or what’s left of one." "thoughts">>
<<addDialogue "Casey" "Of course... what would a perfect night be without another damn walking corpse?" "talk">>
<<addDialogue "" "Without warning, the staggering figure lunges at you with a guttural growl, arms outstretched like claws. Its movements are clumsy yet relentless, driven by blind fury." "description">>
<<addDialogue "Patient" "Graaagh!" "talk">>
<<addDialoguePos "" "[[Fight him|Enemydoorfight]]" "center">>
<<script>>
setTimeout(() => {
audioSystemCrossfade('darksituation.mp3', 4000);
}, 1000);
<</script>>
<<timed 6s>>
<<showNPC "patient" "img/monsters/patients/madpatient.png" "Patient">>
<</timed>>
<<set $EventE6 = 1>><<dialogue "" "The door is locked, you need a level A2 access card." "description">>
<<switch visited()>>
<<case 1>>
<<addDialogue "" "It wasn't going to be that easy..." "thoughts">>
<</switch>>
<<horizontalStart>>
<<if $cardA is true>>
<<addDialogue "" "[[Use card|SecurityRoomOpen]]">>
<</if>>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Grand Hall]]" "center">>
<<spacing "20px">>
<<addDialoguePos "" "[[Exit|Grand Hall]]" "center">>
<<horizontalStart>>
<<horizontalEnd>>
<<dialogue "" "
<<addDialogue "Doc" "
<<addDialogue "" "
<<addDialogue "Casey" "
" "talk">>
" "description">>
" "thoughts">>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|MainLobby]]" "center">>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>><<dialogue "" "The door is open." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|Storage]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Grand Hall]]" "center">>
<<if window.gameState.lanternOn>>
<<goto "StorageLight">>
<<else>>
<<dialogue "" "The room is completely dark. There’s no visible source of light, and your eyes fail to adjust." "description">>
<<horizontalStart>>
<<addDialoguePos "" "[[Back|Grand Hall]]" "center">>
<<horizontalEnd>>
<</if>>
<<set $StorageDoor = true>><<if window.gameState.lanternOn>>
<<goto "CellCorridorALight">>
<<else>>
<<dialogue "" "The hallway fades into darkness, leading to a maze of corridors where the patients' rooms await." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Corridor - Bedrooms A|CellCorridorA2]]">>
<<addDialogue "" "[[Grand Hall|Grand Hall]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<script>>
window.setLighting(50);
<</script>><<dialogue "" "The western side is quieter, but just as oppressive. Moonlight filters through grimy overhead panels, casting long shadows across broken furniture and steel beams. Most of the ceiling lights are dead, save for one flickering bulb. To the north, a dark corridor stretches into the facility. Another hallway, heading west, bears a crooked sign barely clinging to the wall: Laboratory." "description">>
<<horizontalStart>>
<<if $ghroom2 isnot true>>
<<addDialogue "" "[[Check Door|GHdoor2]]">>
<<else>>
<<addDialogue "" "[[Stairwell corridor|GHroom2]]">>
<</if>>
<<if $ghroom3 isnot true>>
<<addDialogue "" "[[Check Door|GHdoor3]]">>
<<else>>
<<addDialogue "" "[[Janitor's closet|GHroom3]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Go to laboratory|LabCorridorA]]">>
<<addDialogue "" "[[Grand Hall - East|Grand Hall]]">>
<<horizontalEnd>>
<<script>>
window.setLighting(80);
<</script>><<dialogue "" "The air grows heavy, and a strange sensation fills your chest. Darkness seems to creep into every corner, and something in the atmosphere makes you feel watched. A sharp pain pierces your head, and your thoughts blur. Suddenly, your vision distorts, as if the world around you has twisted." "description">>
<<addDialogue "Casey" "Agh! My head...!" "talk">>
<<addDialogue "" "You clutch your temple, feeling the pain intensify. The pressure in your skull is unbearable, as if something is trying to force its way into your mind. And then, a cold sensation takes hold of you… you feel a presence. It’s watching you." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|Event1b]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(60)
<</script>>
<<script>>
playSoundDirect('ab01.mp3');
<</script>>
<<timed 10s>>
<<script>>
playSoundDirect('ab01.mp3');
<</script>>
<</timed>>
<<timed 20s>>
<<script>>
playSoundDirect('ab01.mp3');
<</script>>
<</timed>>
<<script>>
setTimeout(() => {
audioSystemCrossfade('darksituation2.mp3', 4000);
}, 1000);
<</script>>
<<set $AberrationEvent = 1>><<goto "SecurityRoom">>
<<set $SecurityRoom = true>>
<<dialogue "" "The storage room is spacious. Empty, disorganized metal shelves line the walls. On one side, four metal lockers stand closed, each secured with a rusty padlock. The floor is covered in dirt, scattered paper fragments, and stacks of empty boxes arranged without order." "description">>
<<addDialoguePos "" "[[Exit|Grand Hall]]" "center">>
<<dialogue "" "The door is open." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|GHroom2]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Grand Hall2]]" "center">>
<<if window.gameState.lanternOn>>
<<goto "GHroom2Light">>
<<else>>
<<dialogue "" "It’s dark. You can barely make out the cracked walls, and the floor creaks beneath your feet. In the center, two rusted staircases come into view: one ascends but is blocked by debris; the other descends, possibly sealed with boards and chains. Above, a broken light flickers, casting fleeting shadows before plunging you back into darkness." "description">>
<<addDialoguePos "" "[[Exit|Grand Hall2]]" "center">>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<set $ghroom2 = true>>
<<dialogue "" "The door is open." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|GHroom3]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Grand Hall2]]" "center">>
<<if window.gameState.lanternOn>>
<<goto "GHroom3Light">>
<<else>>
<<dialogue "" "The room is small and suffocating, the dim light barely illuminating the cluttered space. The air is thick with dust, and you can only make out vague shapes in the gloom. A single bulb hangs from the ceiling, flickering weakly as it casts unsettling shadows on the rust-stained walls." "description">>
<<addDialoguePos "" "[[Exit|Grand Hall2]]" "center">>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<set $ghroom3 = true>>
<<if window.gameState.lanternOn>>
<<goto "LabCorridorALight">>
<<else>>
<<dialogue "" "The hallway is narrow and damp, lined with metal doors on both sides. The walls are cold to the touch, and the air feels heavier the farther you go." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Go to laboratory|LabCorridorA2]]">>
<<addDialogue "" "[[Grand Hall|Grand Hall2]]">>
<<horizontalEnd>>
<</if>>
<<script>>
window.setLighting(50);
<</script>><<dialogue "" "The floor is covered with expired cleaning supplies, some leaking into dark, sticky puddles. A metal locker stands against the wall, its door slightly ajar, casting shadows inside. A cracked mirror above the sink reflects the desolation of the room. The flashlight casts sharp beams of light, but the place still feels suffocating, the air thick with the scent of mold, bleach, and something faintly metallic." "description">>
<<horizontalStart>>
<<if $ghr isnot true>>
<<addDialogue "" "[[Check room|Check]]">>
<</if>>
<<if $ActiveBB is true>>
<<addDialogue "" "[[Check mirror|CheckMirror]]">>
<</if>>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Exit|Grand Hall2]]" "center">><<dialogue "" "You stand in a cold room of the abandoned psychiatric hospital. Cracked walls are covered in mold. The floor, littered with dust and broken glass, creaks underfoot. At the center, two rusted staircases: one spirals upward, blocked by debris; the other descends, sealed with boards and chains. A damp odor fills the air, and a broken lamp flickers faintly." "description">>
<<addDialoguePos "" "[[Exit|Grand Hall2]]" "center">>
<<dialogue "" "You crouch down, inspecting the dusty floor of the room. Amid the shadows and clutter, something catches your attention—a small metal box, half-covered by torn papers and scattered debris. You open it carefully, the sound of the lid sliding against the metal startling in the silence. Inside, you find a faded, discolored photograph—its face familiar, yet forgotten. The edges are worn, and the image has lost nearly all of its color, but there’s something in those eyes that feels disturbingly close." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take it|Check2]]">>
<<horizontalEnd>>
<<addDialoguePos "" "[[Back|GHroom3]]" "center">><<switch visited()>>
<<case 1>>
<<dialogue "" "You approach the cracked mirror above the sink, its surface broken in several places. The reflection is distorted, and for a moment, you lose yourself in your own reflection. The face staring back at you seems strange, like that of a stranger. The lines around your eyes, the wear of sleepless nights, the ghost of something darker beneath the surface." "description">>
<<addDialogue "" "Am I losing myself? This place... it’s making me question everything. What’s real? What’s not?" "thoughts">>
<<addDialogue "" "You shake your head, trying to clear the fog." "description">>
<<addDialogue "Casey" "There’s no time to lose." "talk">>
<<addDialoguePos "" "[[Back|GHroom3]]" "center">>
<<default>>
<<dialogue "" "You glance at your reflection once more. The cracked mirror shows only fragments of your face, distorted and fragmented, a reminder of the broken reality surrounding you." "description">>
<<addDialoguePos "" "[[Back|GHroom3]]" "center">>
<</switch>><<dialogue "" "The photograph shows a pregnant woman sitting on a bench in the psychiatric hospital's garden. Despite the somber setting, there’s a tenderness in her expression—a quiet mix of exhaustion and affection. Next to her, a girl of about six leans gently against her belly, arms wrapped around it in a small, careful embrace. The child has dark hair and wide, serious eyes, as if she understands more than she should at her age. The woman wears a white gown, most likely that of a patient. You turn the photograph over and discover a faint Diary Note in ink, nearly lost to time." "description">>
<<addDialogue "" "A pregnant woman, a child... what does all this have to do with the case? I’m not sure what surprises me more, the fact that the doctor was so close to these people or that no one ever asked about them before. I don’t have time to dwell too much on this photo, but... I can’t help wondering." "thoughts">>
<<addDialogue "Casey" "What happened to them?" "talk">>
<<addDialogue "" "Next to the photo rests a bottle of chemicals. The label is faded with time, barely legible, though the warning symbol still stands out. The liquid inside looks stable, though you can’t help but wonder what it was used for… and by whom." "description">>
<<addImage "img/documents/old_photo_pregnant1.png">>
<<horizontalStart>>
<<addDialogue "" "[[Take chemicals|chemgh3]]">>
<<addDialogue "" "[[Let it|GHroom3]]">>
<<horizontalEnd>>
<<set $ghr = true>>
<<script>>
window.addDocumentWithNotification(
"old_photo_pregnant_woman_child",
"Old Photograph",
"Aged photo of an unknown pregnant woman and girl with crossed-out faces.",
"",
"photo",
"📷",
{
imagePath: "img/documents/old_photo_pregnant1.png",
location: "Found on the floor of the janitor's room in Charles Frances Hospital.",
photographer: "Photographer unknown",
frontDescription: `An old, worn photograph of a pregnant woman and a young girl, their faces deliberately erased.`
}
);
<</script>>
<<script>>
playSoundDirect('page.mp3');
<</script>><<dialogue "" "You grab the chemicals and store it in your backpack." "description">>
<<addDialoguePos "" "[[Back|GHroom3]]" "center">>
<<set $chemicals += 1>>
<<script>>
const itemKey = 'chemicals';
const itemName = 'Bottle of chemicals';
const itemDescription = 'A bottle containing some unknown chemical, as its label has been worn away over time.';
const itemValue = 50;
const imagePath = `img/items/special/chemicals.png`;
window.itemDatabase[itemKey] = {
name: itemName,
description: itemDescription,
category: "special",
image: imagePath,
stackable: true,
maxStack: 1,
value: itemValue,
weight: 0.5,
isSellable: true,
};
window.ShopSystem.sellPrices[itemName] = {
buy: itemValue,
sell: Math.floor(itemValue * 0.75),
stock: 1,
img: imagePath
};
//Adding item ro inventory
const item = window.createItemInstance(itemKey, 1);
const result = window.InventorySystem.addItem(item);
if (result && window.ItemNotificationSystem) {
window.ItemNotificationSystem.show(itemKey, 1, `${itemName} acquired!`);
}
window.ShopSystem.populateSellItems();
<</script>><<if window.gameState.lanternOn>>
<<goto "LabCorridorA2Light">>
<<else>>
<<dialogue "" "You walk down a long corridor, its walls stained with time and neglect. Every step forward is met with the faint creak of the floor beneath your feet." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Laboratory|LabA]]">>
<<addDialogue "" "[[Back to Grand Hall|LabCorridorA]]">>
<<horizontalEnd>>
<</if>>
<<dialogue "" "The hallway is narrow and damp, lined with metal doors on both sides. You light the way with your flashlight, its beam flickering across the cold walls. The air grows denser and heavier." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Go to laboratory|LabCorridorA2]]">>
<<addDialogue "" "[[Grand Hall|Grand Hall2]]">>
<<horizontalEnd>>
<<dialogue "" "" "description">>
<<horizontalStart>>
<<addDialogue "" "[[Corridor to Grand Hall|LabCorridorA2]]">>
<<addDialogue "" "[[Corridor to incubation room|Incorridor]]">>
<<horizontalEnd>>
<<goto "noenter1">>
<<script>>
window.setLighting(50);
<</script>>
<<dialogue "" "You walk down a long corridor, your flashlight casting shaky light along the floor. The walls, stained by time and neglect, flicker in and out of view as the beam moves. Each step forward is met with the soft creak of the floor beneath your feet, while shadows dance around you." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Laboratory|LabA]]">>
<<addDialogue "" "[[Back to Grand Hall|LabCorridorA]]">>
<<horizontalEnd>>
<<dialogue "" "An empty corridor stretches like an endless throat. Exposed cables hang from the ceiling like throbbing veins. Moonlight illuminates the area through a broken window." "description">>
<<addDialogue "" "[[laboratory|LabA]]">>
<<addDialogue "" "[[Incubation room]]">><<dialogue "" "This path remains closed… for now. Perhaps in the future, new opportunities will unfold. Your support helps bring those moments closer. Thank you for being part of this story." "description">>
<<addDialoguePos "" "[[Back|LabCorridorA2]]" "center">>
<<horizontalStart>>
<<horizontalEnd>>
<<dialogue "" "
<<addDialogue "Doc" "
<<addDialogue "" "
<<addDialogue "Casey" "
" "talk">>
" "description">>
" "thoughts">>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Incorridor]]" "center">>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>><<dialogue "" "Something is moving in the darkness, a man in a patient’s gown stepping out from the shadows attracted by the light of your flashlight." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Fight|SRCfight2]]">>
<<horizontalEnd>>
<<set $srcsf = 1>>
<<set $EventE4 = 1>>
<<set $randomEnemy =random(2)>>
<<if $randomEnemy is 0>>
<<run startAdvancedBattle([
{
type: 'lobotomizedPatient',
hp: 80,
distance: 10,
randomDistance: true,
speed: "3-8",
minMovement: 3,
maxMovement: 8,
damage: 8,
DamageIgnore: {
'pistol': 0.2,
'rifle': 0.0,
'shotgun': 0.0,
'melee': 0.6,
'incendiary': 0.2,
'dragon_breath': 0.0,
'tracer': 0.2,
'9mm': 0.4,
'.45': 0.2,
'slugs': 0.0
}
},
], 'VictoryPassage', true, 'CombatEscape', true)>>
<<elseif $randomEnemy is 1>>
<<run startAdvancedBattle([
{
type: 'madPatient',
hp: 70,
distance: 20,
randomDistance: true,
speed: "3-8",
minMovement: 3,
maxMovement: 8,
damage: 10,
DamageIgnore: {
'pistol': 0.5,
'rifle': 0.2,
'shotgun': 0.1,
'melee': 0.4,
'incendiary': 0.2,
'dragon_breath': 0.0,
'tracer': 0.2,
'9mm': 0.4,
'.45': 0.2,
'slugs': 0.0
}
},
], 'VictoryPassage', true, 'CombatEscape', true)>>
<<elseif $randomEnemy is 2>>
<<run startAdvancedBattle([
{
type: 'locoPatient',
hp: 90,
distance: 20,
randomDistance: true,
speed: "3-8",
minMovement: 3,
maxMovement: 8,
damage: 8,
DamageIgnore: {
'pistol': 0.5,
'rifle': 0.2,
'shotgun': 0.1,
'melee': 0.4,
'incendiary': 0.2,
'dragon_breath': 0.0,
'tracer': 0.2,
'9mm': 0.4,
'.45': 0.2,
'slugs': 0.0
}
},
], 'VictoryPassage', true, 'CombatEscape', true)>>
<</if>>
<<if $CaseyCoat is true && $CaseyJacket isnot true>>
<<setAvatarDirect "caseycoatpistol.png">>
<<elseif $CaseyCoat isnot true && $CaseyJacket is true>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<else>>
<<setAvatarDirect "caseypistol.png">>
<</if>><<dialogue "" "Everything turns blurry. Liquid shadows slither across the walls, and reality flickers like a flame on the verge of dying out. And then, you see it. A figure emerges from the darkness. It doesn’t walk, doesn’t move like anything of this world. Its form is wrong—an impossible amalgamation of existence and denial. Something that shouldn’t be here. Something that was never meant to be. An aberration." "description">>
<<addDialogue "Casey" "No! Damn it! Not now!" "talk">>
<<addDialogue "" "As the creature approaches, the pain in your head vanishes quickly. But the absence is not relief… it’s worse. It’s as if something far greater has taken its place, something that devours every sensation, every thought." "description">>
<<addDialogue "Casey" "This isn’t real… it can’t be real." "talk">>
<<addDialogue "" "Your body feels light, distant, as if it no longer belongs to you, while the aberration keeps closing in. Its very existence warps reality around it, as if the world itself is trying to reject it. Its mere presence is nauseating—an error in creation, something that should have never been." "description">>
<<addDialogue "Casey" "God… that’s disgusting." "talk">>
<<addDialogue "" "I need to get out of here!" "thoughts">>
<<addDialogue "" "But you can’t move. Your instincts scream, and in a reflex, you draw your weapon." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Fight|monsterEvent1]]">>
<<horizontalEnd>>
<<set $aberrationfight1 = 1>>
<<set $Aberration01 = 1>>
<<run startAdvancedBattle([
{
type: 'shadowAnomaly',
hp: 900,
distance: 50,
randomDistance: true,
speed: "10",
minMovement: 10,
maxMovement: 10,
damage: 30,
DamageIgnore: {
'pistol': 1,
'rifle': 1,
'shotgun': 1,
'melee': 0.5,
'incendiary': 0.1,
'dragon_breath': 0.0,
'tracer': 1,
'9mm': 1,
'.45': 1,
'slugs': 1
}
},
], 'Event_Aberration01', false, 'Event_Aberration01', true)>>
<<if $CaseyCoat is true && $CaseyJacket isnot true>>
<<setAvatarDirect "caseycoatpistol.png">>
<<elseif $CaseyCoat isnot true && $CaseyJacket is true>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<else>>
<<setAvatarDirect "caseypistol.png">>
<</if>>
<<timed 3s>>
<<dialogue "" "You fire, but the creature doesn't even flinch. Its blackened flesh writhes like a mass of liquid shadows, deforming and reconstructing with each step it takes toward you. You grit your teeth, pull the trigger again. And again." "description">>
<</timed>>
<<timed 7s>>
<<addDialogue "" "Nothing!" "thoughts">>
<<addDialogue "Casey" "What the hell?" "talk">>
<<addDialogue "" "The creature advances, your flashlight flickers in your hand, as if the very light is afraid to illuminate what crawls before you. It has no face, just a pulsing void where a head should be. Its torso expands and contracts unnaturally, as if breathing in every direction at once. You take a step back. Another. Your back hits the wall." "description">>
<<addDialogue "Casey" "Shit!" "talk">>
<<addDialogue "" "The creature lunges at you. You try to move, but it's too fast. Its dark tentacle pierces your chest like a spear." "description">>
<<addDialogue "Casey" "Ah!" "talk">>
<<addDialogue "" "The pain is unbearable. It's as if an icy pressure takes hold of you from within, tearing you apart from the core of your being. The air escapes your lungs. You try to scream, but only manage a choked sound." "description">>
<<addDialogue "Casey" "No... no... no..." "talk">>
<<addDialogue "" "Your hands grasp at the air, searching for something to hold onto, but everything seems to collapse. You feel something crawl across your chest, but when you look, there's no hole. No blood. You stagger, incredulous, looking down, terrified. But your chest is intact. There's no wound. Only the pain." "description">>
<<addDialogue "Casey" "What... what is happe...ning?" "talk">>
<<addDialogue "" "My voice! I can barely hear myself... I can't... hold on anymore!" "thoughts">>
<<addDialogue "" "You gasp, trying to keep control, but you can't. Your mind begins to give in. Your knees buckle, and you fall to the floor. The monster is no longer in front of you, it has disappeared completely, leaving no trace. Finally, your mind shuts down. The cold invades you completely, and you fall, into the darkness." "description">>
<<horizontalStart>>
<<if $Fpartner is true>>
<<addDialogue "" "[[Continue|Event-Flashback1-Female]]">>
<<elseif $Mpartner is true>>
<<addDialogue "" "[[Continue|Event-Flashback1-Male]]">>
<<else>>
<<addDialogue "" "[[Continue|Event-Flashback1-Solo]]">>
<</if>>
<<horizontalEnd>>
<</timed>>
<<timed 3s>>
<<script>>
playSoundDirect('ab01.mp3');
<</script>>
<</timed>>
<<timed 7s>>
<<script>>
playSoundDirect('ab01.mp3');
<</script>>
<</timed>>
<<set $aberrationfight1 = 2>>
<<set $AberrationEvent = 2>>
<<script>>
window.HealthSanitySystem.addHealth(1)
<</script>>
<<toggleMenuElement "lantern-row">><<dialogue "" "A warm sensation spreads through your body, slowly pulling you out of the darkness. The cold fades, replaced by the softness of sheets wrapping around you." "description">>
<<addDialogue "" "The faint scent of cologne and morning air lingers in the room. A golden, diffused light filters through the curtains, casting soft shadows on the walls. Your body feels heavy, but there is no pain. Your breathing is slow and steady. For a moment, everything is peaceful. You shift slightly, feeling the weight of an arm resting on your waist. The warmth of another body against your back sends a familiar sensation." "description">>
<<addDialogue "Casey" "Mmm…" "talk">>
<<addDialogue "" "The mattress dips slightly as the person beside you moves and whispers into your ear." "description">>
<<addDialogue "Violet" "Good morning. I'm going to take a shower." "talk">>
<<addDialogue "" "Their tone is low, heavy with sleep. Before getting up, they press a slow kiss against your shoulder. Then, the warmth of their body fades, though their fingers still trace lightly along your arm before pulling away completely." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Tell her to stay|Event-Flashback2-Female]]">>
<<horizontalEnd>>
<<script>>
window.CharacterMenuControl.show()
<</script>>
<<setAvatarDirect "nude.png">>
<<set $abominationEvent = "complete">>
<<set $IntroVision = true>>
<<timed 7s>>
<<showNPC "violet" "img/characters/violet/violet.png" "Violet">>
<</timed>>
<<script>>
setTimeout(() => {
audioSystemCrossfade('newstart.mp3', 4000);
}, 1000);
<</script>>
<<script>>
window.HealthSanitySystem.addSanity(100)
window.HealthSanitySystem.addHealth(100)
<</script>>
<<unlockCharacterOnly 7>><<dialogue "" "A warm sensation spreads through your body, slowly pulling you out of the darkness. The cold fades, replaced by the softness of sheets wrapping around you. The faint scent of cologne and morning air lingers in the room. A golden, diffused light filters through the curtains, casting soft shadows on the walls." "description">>
<<addDialogue "" "Your body feels heavy, but there is no pain. Your breathing is slow and steady. For a moment, everything is peaceful. You shift slightly, feeling the weight of an arm resting on your waist. The warmth of another body against your back sends a familiar sensation." "description">>
<<addDialogue "Casey" "Mmm…" "talk">>
<<addDialogue "" "The mattress dips slightly as the person beside you moves and whispers into your ear." "description">>
<<addDialogue "Luke" "Good morning... I'm going to take a shower." "talk">>
<<addDialogue "" "Their tone is low, heavy with sleep. Before getting up, they press a slow kiss against your shoulder. Then, the warmth of their body fades, though their fingers still trace lightly along your arm before pulling away completely." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Tell him to stay|Event-Flashback2-Male]]">>
<<horizontalEnd>>
<<script>>
window.CharacterMenuControl.show()
<</script>>
<<setAvatarDirect "nude.png">>
<<set $abominationEvent = "complete">>
<<set $IntroVision = true>>
<<timed 7s>>
<<showNPC "luke" "img/characters/luke/luke.png" "Luke">>
<</timed>>
<<script>>
setTimeout(() => {
audioSystemCrossfade('newstart.mp3', 4000);
}, 1000);
<</script>>
<<script>>
window.HealthSanitySystem.addSanity(100)
window.HealthSanitySystem.addHealth(100)
<</script>>
<<unlockCharacterOnly 6>><<dialogue "" "After the last blink. Your reflection stares back at you from the police station bathroom mirror. For a second, your eyes seem unfamiliar, as if you're looking at yourself through someone else's gaze. The cold water you splash on your face does little to shake the feeling." "description">>
<<addDialogue "Casey" "Must be the exhaustion... Ah..." "talk">>
<<addDialogue "" "I must to finish this soon..." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Back to the office|Event-Flashback2-Solo]]">>
<<horizontalEnd>>
<<set $abominationEvent = "complete">>
<<set $IntroVision = true>>
<<script>>
window.HealthSanitySystem.addSanity(60)
<</script>>
<<script>>
window.HealthSanitySystem.addHealth(100)
<</script>>
<<script>>
window.CharacterMenuControl.show()
<</script>>
<<setAvatarDirect "casey.png">>
<<script>>
setTimeout(() => {
audioSystemCrossfade('newstart.mp3', 4000);
}, 1000);
<</script>>
<<script>>
window.HealthSanitySystem.addSanity(50)
window.HealthSanitySystem.addHealth(100)
<</script>><<dialogue "" "You sigh and step out of the bathroom. The office looks the same as always—piles of documents, cold coffee on the desks, dim lights flickering over the worn-out carpet. Rodríguez is there, slumped in her chair, one hand covering her face. Exhausted." "description">>
<<horizontalStart>>
<<addDialogue "" "[[I'm back|Event-Flashback3-Solo]]">>
<<horizontalEnd>>
<<dialogue "Casey" "I'm back." "talk">>
<<addDialogue "Gabriela" "We should go get some rest." "talk">>
<<addDialogue "" "She doesn't believe in her own words." "thoughts">>
<<addDialogue "Casey" "I'm not leaving until we finish this." "talk">>
<<addDialogue "" "Rodríguez lets out a tired chuckle and stretches in her chair, making her stiff joints crack as she remains seated." "description">>
<<addDialogue "Gabriela" "Of course not." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Work|Event-Flashback4-Solo]]">>
<<horizontalEnd>>
<<showNPC "rodriguez" "img/characters/rodriguez/rodriguez.png" "Gabriela Rodriguez">><<dialogue "" "The sound of keystrokes filled the office as you and Rodríguez scoured the FBI files. The screen casts a blue glow over your tired faces. Hours of searching, cold coffee, and eyes burning from fatigue, but finally…" "description">>
<<addDialogue "Gabriela" "Here it is… here it is!" "talk">>
<<addDialogue "" "Her voice is full of triumph. You move closer, somewhat incredulous, as she scrolls through the document on the screen." "description">>
<<addDialogue "Gabriela" "I think we've got it, Casey. Look: Jackeline Harrington, the aunt of Daniel R. Harrington. She lives with her daughter, Marianne L. Harrington. According to the file, they are located at Luminara Avenue, Apartment 24, Central District of the city, on the second floor, left side of the Monteverde Building. It also says here that Daniel became an orphan at a very young age, though it doesn't specify what happened." "talk">>
<<addDialogue "" "Rodríguez slides the cursor to highlight the information." "description">>
<<addDialogue "Casey" "Second floor, left side... apartment 4... How did this get into the files?" "talk">>
<<addDialogue "Gabriela" "Check this out, in Daniel's history, it says that when he was 13, he was involved in a pretty messed-up incident—he burned the neighbor's kitten. It’s all recorded in the system. He already showed signs of psychopathy at a young age." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[You're incredible!|Event-Flashback5-Solo]]">>
<<horizontalEnd>>
<<showNPC "rodriguez" "img/characters/rodriguez/rodriguez.png" "Gabriela Rodriguez">>
<<dialogue "Casey" "You're incredible!" "talk">>
<<addDialogue "Gabriela" "I knew we'd pull it off, Casey!" "talk">>
<<addDialogue "" "Rodríguez slowly moves closer, and in a tender gesture, brushes his lips with yours. The surprise is reflected in your eyes, creating an awkward moment." "description">>
<<addVideo "media/gabi/kiss.mp4">>
<<addDialogue "" "Wow... She got too excited." "thoughts">>
<<addDialogue "" "Noticing your surprised expression, Gabriela quickly pulls away, her face flushed and her discomfort plain in her movements." "description">>
<<addDialogue "Gabriela" "I'm sorry... I... got carried away..." "talk">>
<<addDialogue "Casey" "Hey, it’s no big deal to show a little enthusiasm but... we still have to catch him..." "talk">>
<<addDialogue "Gabriela" "Yes... you're right..." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Continue with the case|Event-Flashback6-Solo]]">>
<<horizontalEnd>>
<<showNPC "rodriguez" "img/characters/rodriguez/rodriguez.png" "Gabriela Rodriguez">>
<<unlockVideo 3 1>><<dialogue "Casey" "Now we know where Daniel's aunt is. He might be there, or maybe she knows something." "talk">>
<<addDialogue "Gabriela" "Exactly. Daniel's house is abandoned, so he’s probably moved in with her, or at least she might know where he is." "talk">>
<<addDialogue "" "Hmm... Why the hell couldn’t we find this information sooner?" "thoughts">>
<<addDialogue "Gabriela" "What are you thinking, Casey?" "talk">>
<<addDialogue "Casey" "I wonder why it’s been so hard to find this information... Information about his aunt should have been available, damn it! I just found out this bastard has a aunt..." "talk">>
<<addDialogue "Gabriela" "I don’t know... Sometimes, the pieces take time to fall into place." "talk">>
<<addDialogue "Casey" "I don’t buy it... Something’s off. This should have been resolved days ago. Why is everything so hidden?" "talk">>
<<addDialogue "Gabriela" "Sometimes, the information is where you least expect it. Not everything is as it seems on the surface." "talk">>
<<addDialogue "Casey" "No, Rodríguez. I’m telling you, something’s wrong. There’s something that doesn’t add up. It’s not just the case, it’s everything. I have this feeling that someone inside the police... is tampering with evidence... Not just in this case, but in others too." "talk">>
<<addDialogue "Gabriela" "Shh! Don’t raise your voice, alright? This is why everyone here hates you..." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[I’m not yelling|Event-Flashback7-Solo]]">>
<<horizontalEnd>>
<<showNPC "rodriguez" "img/characters/rodriguez/rodriguez.png" "Gabriela Rodriguez">>
<<dialogue "Casey" "I’m not yelling, I’m just thinking out loud. And if that makes them hate me, let them hate me." "talk">>
<<addDialogue "Gabriela" "Casey, it’s not that simple. If what you're saying is true, it’s dangerous to talk here... If there really is someone inside the police tampering with evidence, this is much bigger than it seems." "talk">>
<<addDialogue "Casey" "It's terrifying... But we can't keep ignoring it, Rodríguez. We’ve already seen how they’ve blocked us multiple times. What if they’re covering up someone bigger, or something?" "talk">>
<<addDialogue "Gabriela" "I'm not saying I don't believe you, but we have to be smart. We can't go around swinging blindly. If we make such an accusation without evidence, they’ll crush us." "talk">>
<<addDialogue "Casey" "I know. But if we don’t start moving, we’ll never discover anything." "talk">>
<<addDialogue "Gabriela" "And what do you suggest?" "talk">>
<<addDialogue "" "The silence fills the room for a long moment. Rodríguez finally shrugs and gestures with her hands in a subtle, soft motion." "description">>
<<addDialogue "Casey" "We keep working on the case, of course. But after that, we need to do something, maybe talk to Captain Havook." "talk">>
<<addDialogue "Gabriela" "Yeah, after this case. But for now, let’s focus on finding Daniel’s aunt. We can’t let him slip away." "talk">>
<<addDialogue "Casey" "Exactly. First, we need to finish this. Let’s pay a visit to that address, Luminara Avenuea #23. Maybe we’ll find something else there, and if we're lucky, we’ll finally know where Daniel is." "talk">>
<<addDialogue "Gabriela" "Let’s go then. We can’t waste any more time. If he’s with his aunt, we need to find him before he disappears again." "talk">>
<<addDialogue "" "Both of you stand up, gathering your things with determination. As you head towards the door, the suspicion about corruption within the police continues to linger in your mind, while the fatigue begins to take its toll." "description">>
<<addDialogue "" "Damn it, I’m sure! I’m sure there’s someone here! Someone who’s been playing me. Since they killed my family and kidnapped my sister, someone has been playing with me... I swear on everything I have left, I’ll find them. I’ll find my sister. I’ll kill them all if necessary." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Go to the car|Event-Flashback8-Solo]]">>
<<horizontalEnd>>
<<showNPC "rodriguez" "img/characters/rodriguez/rodriguez.png" "Gabriela Rodriguez">><<dialogue "" "Both of you arrive quickly at the parking lot. The night is young, and the lights from the signs in front of the police station flicker slightly. You walk straight toward the driver’s seat, but Gabriela stops you with a hand on your arm." "description">>
<<addDialogue "Gabriela" "Casey, give me the keys." "talk">>
<<addDialogue "Casey" "What? No, I’m fine." "talk">>
<<addDialogue "Gabriela" "No, you're not. Your eyes are closing. Come on, it's just a short drive." "talk">>
<<addDialogue "Casey" "That's exactly why. It's short. I'm not going to fall asleep in ten minutes." "talk">>
<<addDialogue "Gabriela" "Oh, right, because you're one of those new robots—never gets tired." "talk">>
<<addDialogue "Casey" "You got it." "talk">>
<<addDialogue "Gabriela" "Casey... how long has it been since you actually slept well?" "talk">>
<<addDialogue "" "I... don't know. Two days, maybe three..." "thoughts">>
<<addDialogue "Casey" "I got some sleep last night." "talk">>
<<addDialogue "Gabriela" "And how much is "some" for you?" "talk">>
<<addDialogue "" "Your response is so quiet that Rodríguez barely hears it." "description">>
<<addDialogue "Casey" "About 3 hours, more or less..." "talk">>
<<addDialogue "Gabriela" "What? You can't keep going like this! At least close your eyes for a bit—Jesus, Casey...!" "talk">>
<<addDialogue "" "You run a hand over your face, feeling the burning in your eyelids. Until now, you had ignored the exhaustion, but Rodríguez's words seem to pull it out from where you had buried it, reminding you just how heavy it is. Gabriela lets out a sharp sigh, clenching her fists tightly. Her patience has completely evaporated, and concern turns into frustration." "description">>
<<addDialogue "Gabriela" "You know what? No. I’m not going to argue about this. You’re not in condition, Casey. No way." "talk">>
<<addDialogue "Casey" "Don’t exaggerate Gabi..." "talk">>
<<addDialogue "" "Gabriela immediately extends her hand, palm open, demanding the keys." "description">>
<<addDialogue "Gabriela" "Give them to me. Now." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Give her the keys|Event-Flashback9-Solo]]">>
<<horizontalEnd>>
<<showNPC "rodriguez" "img/characters/rodriguez/rodriguez.png" "Gabriela Rodriguez">><<dialogue "" "You bite your lips until they almost bleed, feeling your pride twist in your chest. But knowing that Rodríguez is right, you relent. With a heavy sigh, you take the keys out and hand them to her." "description">>
<<addDialogue "Casey" "Just ten minutes." "talk">>
<<addDialogue "Gabriela" "Whatever the drive takes." "talk">>
<<addDialogue "" "She pauses, looking at you straight in the face, her expression rigid." "description">>
<<addDialogue "" "She is clearly angry..." "thoughts">>
<<addDialogue "Gabriela" "This has to be the last time. Do you hear me? The last time we finish a case like this! I’m done! You always end up a wreck, always! How am I supposed to trust you to cover my back in that state? No way!" "talk">>
<<addDialogue "" "Her words hit you like a hammer. Your eyes widen for a few seconds as you listen to your partner’s words. The pain of the truth cuts deep, and you know she couldn’t be more right." "description">>
<<addDialogue "Gabriela" "I can’t keep working like this with you, Casey. You’re a great detective and... my best friend... but if you keep going like this, you’re dragging down, and me with you." "talk">>
<<addDialogue "" "The anger mixes with discomfort, but you can't deny it. Gabriela's words cut through you, but you have no response." "description">>
<<addDialogue "" "God, Gabi, I..." "thoughts">>
<<addDialogue "Casey" "I'm sorry..." "talk">>
<<addDialogue "Gabriela" "Just make sure you really rest next time, okay?" "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Everything will be fine|Event-Flashback10-Solo]]">>
<<horizontalEnd>>
<<showNPC "rodriguez" "img/characters/rodriguez/rodriguez.png" "Gabriela Rodriguez">>
<<dialogue "Casey" "Everything will be fine. But next time... next time I'll rest." "talk">>
<<addDialogue "" "Gabriela doesn't respond immediately. Her expression softens, but her eyes are still full of concern. She takes a step back, giving you a moment to process everything she just said. The air between you two feels thick, as if you both can sense the weight of the truth hanging in the space. Those moments of silence, though uncomfortable, seem inevitable." "description">>
<<addDialogue "Gabriela" "You never talk about it, you know?" "talk">>
<<addDialogue "Casey" "What?" "talk">>
<<addDialogue "Gabriela" "Your family... your parents. Your sister." "talk">>
<<addDialogue "" "Her voice is soft, but the question falls heavy between the two of you. As if, by mentioning it, a space you’ve kept closed briefly opens." "description">>
<<addDialogue "Casey" "You know what happened..." "talk">>
<<addDialogue "Gabriela" "Casey, I mean..." "talk">>
<<addDialogue "" "She looks at you with a mixture of concern and understanding. It’s as if she wants to say more, but doesn’t know how, as if the anguish in your words isn’t only yours, but hers too." "description">>
<<addDialogue "Casey" "I know, Gabi. I know." "talk">>
<<addDialogue "" "Her eyes don’t leave you. Those uncomfortable silences fill the air again. Gabriela seems to be waiting for you to speak, for you to take the next step." "description">>
<<addDialogue "Gabriela" "If you ever need to talk about them... you know I’m here, right?" "talk">>
<<addDialogue "Casey" "I know... I’m just not ready yet." "talk">>
<<addDialogue "Gabriela" "It’s okay. Let’s get moving." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Get in the car|Event-Flashback11-Solo]]">>
<<horizontalEnd>>
<<showNPC "rodriguez" "img/characters/rodriguez/rodriguez.png" "Gabriela Rodriguez">>
<<dialogue "" "Gabriela starts the car with a heavy sigh, her hands firmly gripping the steering wheel. The engine hums softly, and the sound of city traffic mixes with the dense silence between you both. Gabriela keeps her eyes on the road, her expression still tense, though a little calmer after what had just happened." "description">>
<<addDialogue "" "You lean back in the seat, feeling exhaustion overtake you completely. Though you know you shouldn’t fall asleep, your eyelids no longer respond. The hum of the engine, the soft vibration of the wheels on the asphalt, is almost hypnotic. Gabriela glances at you quickly, noticing how your eyes seem to close completely, the weight of fatigue finally taking control of your body." "description">>
<<addDialogue "Gabriela" "Just ten minutes, huh?" "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Sleep|Event-FlashbackEnd-Solo]]">>
<<horizontalEnd>>
<<showNPC "rodriguez" "img/characters/rodriguez/rodriguez.png" "Gabriela Rodriguez">><<dialogue "" "Finally, you can’t keep your eyes open any longer. The exhaustion weighs on you so heavily that, despite the persistent feeling that you should stay alert, your body betrays you. You lean back in the seat, surrendering to the comfort you feel. For a moment, it feels like peace, a brief respite from the storm of thoughts and the tension that overwhelms you." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Wake up|Event-FlashbackEnd2-Solo]]">>
<<horizontalEnd>>
<<dialogue "" "A sharp sensation pulls you out of sleep. It’s not a gentle awakening, but a jolt, a harsh return to reality. You open your eyes, but nothing feels familiar. The air is cold, damp, stale." "description">>
<<addDialogue "" "The smell of mold and decay fills your nostrils. You slowly rise, feeling how your body is stiff, as if you've been here much longer than you remember. Looking around, everything is dark, except for the faint light of the moon filtering through broken windows. The silence is complete, heavy." "description">>
<<addDialogue "" "The sense of disorientation consumes you as you stand, the cold, dusty floor beneath your feet. There’s no sign of the aberration that attacked you before." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Get up|Event-FlashbackEnd3-Solo]]">>
<<horizontalEnd>>
<<dialogue "" "The cold of the floor is the first thing you perceive upon waking. The rough, dusty stone presses against your skin as you clumsily push yourself up. The dense, humid air barely stirs, and a rancid stench clings to the atmosphere, invading your senses. Shadows stretch around you, cast by the pale moonlight filtering through the broken windows. The room is completely silent, an unsettling void that offers no clues about what happened before." "description">>
<<addDialogue "" "Where…?" "thoughts">>
<<addDialogue "Casey" "Shit. How long was I out?" "talk">>
<<addDialogue "" "Your fingers slowly trail to your chest, searching for the damage caused by the tentacle. No wounds. No blood." "description">>
<<addDialogue "" " This isn’t possible. And the dream..." "thoughts">>
<<addDialogue "Casey" "Shit… this dream..." "talk">>
<<addDialogue "" "You exhale sharply, pressing your hand to your temple. The past pulls at you like an unstoppable current, each memory unraveling the present." "description">>
<<addDialogue "" "It was my last case with Gabi. She was right… it didn’t end well." "thoughts">>
<<addDialogue "" "The darkness around you surrounds you, the humidity seeps into your bones, and the echo of the past continues to resonate in your mind. You feel as if you are trapped, lost between two worlds. But the present is what matters most." "description">>
<<addDialogue "" "That thing… whatever it was… attacked me, and then… maybe it was a hallucination or… Shit, I need to focus." "thoughts">>
<<addDialogue "" "You close your eyes for a moment, trying to gather strength, trying not to think about the creature." "description">>
<<addDialogue "Casey" "This can't stop me. I have to keep going." "talk">>
<<addDialogue "" "You pull away from the wall, and although your body still feels heavy, you force yourself to stand firm. Each movement is a reminder that you're still alive." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|Grand Hall]]">>
<<horizontalEnd>>
<<script>>
stopAllMusic();
<</script>>
<<if $CaseyJacket is true>>
<<setAvatarDirect "caseyjacket.png">>
<</if>>
<<if $CaseyCoat is true>>
<<setAvatarDirect "caseycoat.png">>
<</if>>
<<toggleMenuElement "lantern-row">>
<<script>>
window.HealthSanitySystem.addSanity(100)
<</script>><<addDialogue "" "You turn over in bed, reaching out with a lazy hand, brushing your fingers against their skin." "description">>
<<addDialogue "Casey" "Stay a little longer…" "talk">>
<<addDialogue "" "You hear their soft laugh before their fingers gently caress your cheek." "description">>
<<addDialogue "Luke" "It’s already late, I have to leave soon..." "talk">>
<<addDialogue "" "You let out a sigh, clinging a little longer to their warmth, but they’re already pulling away. The mattress dips slightly as they sit at the edge of the bed." "description">>
<<addDialogue "Luke" "But if you want… you can join me in the shower." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Close your eyes for a few more minutes|Event-Flashback2b-Male]]">>
<<addDialogue "" "[[Go to the shower|Event-shower-Male]]">>
<<horizontalEnd>>
<<showNPC "luke" "img/characters/luke/luke.png" "Luke">>
<<dialogue "" "Before she can continue to the bathroom, you stand up and gently grasp her wrist. Violet turns, surprised, but there’s a mischievous spark in her eyes." "description">>
<<addDialogue "Violet" "Casey... I'm in a hurry. I must to..." "talk">>
<<addDialogue "" "You pull her closer without a word. She lets out a soft laugh, but it fades the moment your lips meet hers. The kiss starts slow, unhurried, but as your hands trace over her bare skin, the air between you shifts." "description">>
<<addDialogue "" "Violet sighs against your mouth, her fingers tightening around your waist as she guides you toward the couch. You fall together onto the cushions, skin against skin, breathless. Her body moves against yours, each touch stoking the heat between you." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|Event-sofa-Female1]]">>
<<horizontalEnd>>
<<showNPC "violet" "img/characters/violet/violet.png" "Violet">>
<<dialogue "" "Violet stands kneels, starting to touch you." "description">>
<<addVideo "media/violet/startplay.mp4">>
<<addDialogue "" "She wraps her mouth around your pussy. Her warmth and softness make you shudder as she continues exploring you eagerly, savoring every reaction of yours." "description">>
<<addVideo "media/violet/startplay2.mp4">>
<<horizontalStart>>
<<addDialogue "" "[[Eat her pussy|Event-sofa-Female2]]">>
<<addDialogue "" "[[Let her lick you more|Event-sofa-Female3]]">>
<<horizontalEnd>>
<<showNPC "violet" "img/characters/violet/violet.png" "Violet">>
<<unlockVideo 7 1>>
<<unlockVideo 7 2>> <<dialogue "" "You turn over in bed, reaching out with a lazy hand, brushing your fingers against their skin." "description">>
<<addDialogue "Casey" "Stay a little longer…" "talk">>
<<addDialogue "" "You hear their soft laugh before their fingers gently caress your cheek." "description">>
<<addDialogue "Violet" "It’s already late, I have to leave soon..." "talk">>
<<addDialogue "" "You let out a sigh, clinging a little longer to their warmth, but they’re already pulling away. The mattress dips slightly as they sit at the edge of the bed. She stretches, running a hand through her hair before standing up. Her steps are slow, unhurried, as she makes her way toward the bathroom." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Stop her|Event-sofa-Female]]">>
<<horizontalEnd>>
<<showNPC "violet" "img/characters/violet/violet.png" "Violet">><<dialogue "" "You lean between her legs, feeling her breath quicken as your tongue glides over her skin. Every movement of yours makes her tremble, surrendering to pleasure. Without hesitation, you bury your face between her thighs, devouring her with hunger, as if she were the most delicious feast you've ever tasted." "description">>
<<addVideo "media/violet/eatpussy.mp4">>
<<horizontalStart>>
<<addDialogue "" "[[Let her lick you more|Event-sofa-Female3]]">>
<<addDialogue "" "[[Eat more pussy|Event-sofa-Female4]]">>
<<horizontalEnd>>
<<showNPC "violet" "img/characters/violet/violet.png" "Violet">>
<<unlockVideo 7 3>> <<dialogue "" "You shudder, biting your lip as Violet continues licking with dedication. Your fingers grip her hair, guiding her gently." "description">>
<<addDialogue "Casey" "Don’t stop..." "talk">>
<<addDialogue "" "She smiles against your skin before deepening her rhythm, savoring every sound she draws from you." "description">>
<<addVideo "media/violet/lickpussy.mp4">>
<<horizontalStart>>
<<addDialogue "" "[[Lick her pussy|Event-sofa-Female2]]">>
<<addDialogue "" "[[Scissors|Event-sofa-Female5]]">>
<<horizontalEnd>>
<<showNPC "violet" "img/characters/violet/violet.png" "Violet">>
<<unlockVideo 7 4>> <<dialogue "" "Violet is on all fours on the couch, her back arched and her skin tingling under your hands. You grip her thighs and bury your head between her legs, devouring her with more intensity, making her moan in pleasure." "description">>
<<addVideo "media/violet/eatpussy2.mp4">>
<<horizontalStart>>
<<addDialogue "" "[[Scissors|Event-sofa-Female5]]">>
<<horizontalEnd>>
<<showNPC "violet" "img/characters/violet/violet.png" "Violet">>
<<unlockVideo 7 5>>
<<dialogue "" "Violet settles on top of you, starting slowly, but soon her hips move with a desperate rhythm, seeking more friction between you both." "description">>
<<addVideo "media/violet/scissors.mp4">>
<<addDialogue "" "The warmth of her skin blends with yours, the electric friction making each moan grow louder." "description">>
<<addVideo "media/violet/scissors2.mp4">>
<<horizontalStart>>
<<addDialogue "" "[[End|Event-sofa-Female6]]">>
<<horizontalEnd>>
<<showNPC "violet" "img/characters/violet/violet.png" "Violet">>
<<unlockVideo 7 6>>
<<unlockVideo 7 7>> <<dialogue "" "Exhausted, both of you collapse onto the sofa. Violet sits up with a carefree air, her breath still rapid and a rebellious spark in her eyes." "description">>
<<addDialogue "Violet" "I'm going to be late to see my parole officer because of you..." "talk">>
<<addDialogue "" "Her tone is mocking, as if she really doesn’t care." "description">>
<<addDialogue "Casey" "Don’t worry, if he gives you trouble, I’ll pay him a visit to knock him down a peg." "talk">>
<<addDialogue "" "Violet lets out a defiant laugh, a mix of teasing and fun, as she gets dressed in a slightly messy but effortlessly stylish way." "description">>
<<addDialogue "Violet" "Don’t worry about me, detective; your chaos always shakes up my routine. " "talk">>
<<addDialogue "" "With those words, she rushes out. You’re left alone on the sofa, savoring the calm that contrasts with her energetic presence, as you slowly make your way to the bed, ready to enjoy your day off without any rush." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Go to the bed|Event-sofa-FemaleEnd]]">>
<<horizontalEnd>>
<<showNPC "violet" "img/characters/violet/violet.png" "Violet">><<dialogue "" "The sun filters through the curtains, gently illuminating the room. It’s your day off—no rush, no cases to solve… at least for now. You curl up in the sheets, enjoying the lingering warmth on your skin and the peaceful morning." "description">>
<<addDialogue "Casey" "Mmm… well, that was fun" "talk">>
<<addDialogue "" "Just as sleep begins to pull you back under, the insistent buzzing of your phone breaks the silence. You frown and reach for it: Captain Havook." "description">>
<<addDialogue "Casey" "Not now… " "talk">>
<<addDialogue "" "You bury yourself a little deeper into the pillow. Closing your eyes again" "description">>
<<addDialogue "Casey" "Definitely better than any coffee…" "talk">>
<<addDialogue "" "He’d call again later..." "thoughts">>
<<addDialogue "" "You stretch lazily, feeling the pleasant heaviness in your body, a satisfied smile playing on your lips." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Sleep|Event-End]]">>
<<horizontalEnd>>
<<dialogue "" "The cold of the floor is the first thing you feel upon waking. The contact with the cold tiles makes you shiver as you try to push yourself up, the pain in your body is immediate, though it's nothing serious. The air is dense, humid, and somewhat stale, as if the place is holding onto unpleasant memories." "description">>
<<addDialogue "" "Long shadows stretch around you, shaped by the dim moonlight filtering through the broken windows. The room is completely silent, an unsettling stillness that leaves no clues about what happened before." "description">>
<<addDialogue "Casey" "What... what happened here?" "talk">>
<<addDialogue "" "You try to stand, but your legs wobble, forcing you to lean against the nearest wall. Your fingers touch your skin, trailing over your chest, searching for any marks or wounds, but there’s nothing. No trace." "description">>
<<addDialogue "" "Shit... that dream... it felt so real." "thoughts">>
<<addDialogue "" "You sigh deeply, your hand instinctively resting on your crotch as the memories of that night begin to flood your thoughts." "description">>
<<if $Fpartner is true>>
<<addDialogue "" "It was the last time with her... when we were still together, it ended badly. It was the day the captain called me, to inform me of what happened to... to my family." "thoughts">>
<<else>>
<<addDialogue "" "It was the last time with him... when we were still together, it ended badly. It was the day the captain called me, to inform me of what happened to... to my family." "thoughts">>
<</if>>
<<addDialogue "" "You stand there, your mind overwhelmed with questions." "description">>
<<addDialogue "Casey" "What was that thing that attacked me? Was it even real?" "talk">>
<<addDialogue "" "You shake your head, pushing the confusing thoughts aside." "description">>
<<addDialogue "Casey" "Shit, I'm losing my grip!" "talk">>
<<addDialogue "" "I have to keep going and find that damn doctor." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Contiue|Grand Hall]]">>
<<horizontalEnd>>
<<if $CaseyJacket is true>>
<<setAvatarDirect "caseyjacket.png">>
<</if>>
<<if $CaseyCoat is true>>
<<setAvatarDirect "caseycoat.png">>
<</if>>
<<script>>
stopAllMusic();
<</script>>
<<toggleMenuElement "lantern-row">>
<<dialogue "" "You close your eyes and surrender completely to the warmth of the bed. The soft fragrance of the sheets and the distant echo of water falling in the shower surround you." "description">>
<<addDialogue "" "Just a few more minutes…" "thoughts">>
<<addDialogue "" "Your body relaxes again. Slow breathing and the steady rhythm of your heartbeat pull you back into that in-between state of sleep and wakefulness, where time feels hazy, floating in a comforting peace." "description">>
<<addDialogue "" "But eventually, reality calls you back. A shiver runs across your skin as the warmth trapped in the sheets begins to fade. You shift lazily, rolling onto your side before slowly opening your eyes. The golden light filtering through the curtains bathes the room in a soft glow. Everything remains calm. You stretch slowly, letting out a quiet sigh as your mind fully awakens. The sound of running water still echoes from the shower." "description">>
<<addDialogue "" "He’s still there." "thoughts">>
<<addDialogue "" "For a moment, you simply stay in bed, listening to the murmur of the water and the tranquility of the space, savoring these last few seconds of stillness before getting up." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Go to the shower|Event-showerb-Male]]">>
<<horizontalEnd>>
<<dialogue "" "You approach Luke before he can walk away and gently grab his wrist. He smiles, understanding your intent, and lets you lead him toward the bathroom." "description">>
<<addDialogue "Luke" "Oh? Didn’t you want five more minutes of sleep?" "talk">>
<<addDialogue "Casey" "I changed my mind." "talk">>
<<addDialogue "" "Your lips meet in a deep, hungry kiss. His hands roam your skin, pulling you against him as desire takes over. With nothing to stop you, the heat between you ignites, consuming you both completely." "description">>
<<addVideo "media/luke/kiss.mp4">>
<<horizontalStart>>
<<addDialogue "" "[[Let him penetrate you|Event-shower-Male2]]">>
<<horizontalEnd>>
<<showNPC "luke" "img/characters/luke/luke.png" "Luke">>
<<unlockVideo 6 1>> <<dialogue "" "The sound of water falling on the tiles guides you to him. Without thinking twice, you slide the shower door open and step inside, letting the warmth of the steam wrap around your skin. Luck turns, surprised to see you there. A smirk crosses his face before his hands slowly slide down to your waist, pulling you closer." "description">>
<<addDialogue "" "You step in, pressing your chest against his wet torso, feeling the steady beat of his heart against yours. He lets out a soft chuckle and runs his fingers down your back, tracing over your damp skin." "description">>
<<addVideo "media/luke/kiss.mp4">>
<<addDialogue "Luke" "I thought you weren’t coming..." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Let him penetrate you|Event-shower-Male2]]">>
<<horizontalEnd>>
<<showNPC "luke" "img/characters/luke/luke.png" "Luke">>
<<unlockVideo 6 1>> <<dialogue "" "Luke holds you firmly as he guides you with ease, sinking into you in one slow, deliberate motion. A soft sigh escapes your lips as the heat of his body merges with yours. He moves gently at first, his hands exploring your skin, savoring every reaction you give him." "description">>
<<addVideo "media/luke/penetration.mp4">>
<<horizontalStart>>
<<addDialogue "" "[[More|Event-shower-Male3]]">>
<<horizontalEnd>>
<<showNPC "luke" "img/characters/luke/luke.png" "Luke">>
<<unlockVideo 6 2>> <<dialogue "" "The rhythm grows more intense. His hands grip your waist, setting a relentless pace. The sound of his ragged breaths mixes with yours as pleasure builds uncontrollably, igniting every nerve with each deep, fast thrust." "description">>
<<addVideo "media/luke/penetration2.mp4">>
<<horizontalStart>>
<<addDialogue "" "[[Make him cum|Event-shower-Male4]]">>
<<horizontalEnd>>
<<showNPC "luke" "img/characters/luke/luke.png" "Luke">>
<<unlockVideo 6 3>> <<dialogue "" "Straddling him, you feel his body tense beneath you as you cling to his shoulders, surrendering to the intensity of the moment. Luke grits his teeth, his grip tightening. A deep groan escapes him before he finally gives in, both of you tumbling into a wave of pure ecstasy." "description">>
<<addVideo "media/luke/ride.mp4">>
<<horizontalStart>>
<<addDialogue "" "[[End|Event-shower-Male5]]">>
<<horizontalEnd>>
<<showNPC "luke" "img/characters/luke/luke.png" "Luke">>
<<unlockVideo 6 4>> <<dialogue "" "As Luke cleans himself and steps out of the shower to get dressed, you remain under the hot water, feeling the stream flow over your skin, also washing away the remnants of his presence from within you. From the bathroom, you watch his clothes slide over his body." "description">>
<<addDialogue "Luke" "I'm going to be late because of you..." "talk">>
<<addDialogue "Casey" "It's not that big of a deal. It's just a few minutes. Besides, you're not going to complain after the sex, are you?" "talk">>
<<addDialogue "" "Luke lets out a frustrated sigh, runs a hand through his hair, and stands up quickly, moving swiftly to finish getting dressed. His movements are hurried, but he pauses for a moment to look at you with a mischievous smile. He puts on his jacket before approaching the door. He stops for a moment and gives you one last quick glance." "description">>
<<addDialogue "Luke" "You can stay as long as you want, $McName." "talk">>
<<addDialogue "Casey" "Don't worry, Luke. I'm in no rush. I'll see you later." "talk">>
<<addDialogue "Luke" "I'd like that. I'll see you later..." "talk">>
<<addDialogue "" "Luke leaves the room. The door clicks softly as it closes behind him. You sigh, letting the silence settle for a moment. You turn off the shower, step out, and wrap yourself in a towel, slowly making your way back to the bed." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Go to bed|Event-shower-Male6]]">>
<<horizontalEnd>>
<<showNPC "luke" "img/characters/luke/luke.png" "Luke">>
<<dialogue "" "The air is still heavy with his presence, and the bed feels emptier without him. You slide back into the sheets, savoring the residual warmth from the shower, as sleep begins to envelop you once again." "description">>
<<addDialogue "Casey" "Mmm… well, that was fun." "talk">>
<<addDialogue "" "Just as sleep begins to pull you back under, the insistent buzzing of your phone breaks the silence. You frown and reach for it: Captain Havook." "description">>
<<addDialogue "Casey" "Not now! It's my day off..." "talk">>
<<addDialogue "" "You bury yourself a little deeper into the pillow. Closing your eyes again." "description">>
<<addDialogue "Casey" "Definitely better than any coffee…" "talk">>
<<addDialogue "" "He’d call again later..." "thoughts">>
<<addDialogue "" "You stretch lazily, feeling the pleasant heaviness in your body, a satisfied smile playing on your lips." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Sleep|Event-End]]">>
<<horizontalEnd>>
<<dialogue "" "With a shove, the patient knocks you to the ground. You barely manage to roll when the deranged man, his eyes hollow and lifeless, grabs your leg. With unsettling strength, he drags you down the dark hallway. You struggle to break free, but your limbs feel heavy. Your fingernails scrape against the floor in a desperate attempt to hold onto something. Terror and the lack of air blur your vision. You feel a sharp blow to the head against the floor… and everything fades to black." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Coninue|E1b]]">>
<<addDialogue "" "<a tabindex="0" role="button" id="save-button">Load Game</a>">>
<<horizontalEnd>>
<<script>>
// Ensure SugarCube save functionality
$(document).ready(function() {
// Direct save method for SugarCube
$('#save-button').on('click', function() {
// Explicitly use SugarCube's save method
try {
// Open saves dialog
UI.saves();
} catch (error) {
// Fallback error handling
console.error("Save functionality error:", error);
alert("Save function could not be executed.");
}
});
});
<</script>>
<<script>>
window.HealthSanitySystem.addHealth(50)
<</script>>
<<set $bwfight = 2>>
<<set $bwfight2 = 2>>
<<set $bwinfight = true>>
<<set $bwinfight2 = true>>
<<set $EventE1 = 0>>
<<include "Change_MenuIMG">><<dialogue "" "You fall to the floor, the patient grabs your leg. With unsettling strength, he drags you down the dark hallway. You struggle to break free, but your limbs feel heavy. Your fingernails scrape against the floor in a desperate attempt to hold onto something. You feel a sharp blow to the head against the floor… and everything fades to black." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|E3b]]">>
<<addDialogue "" "<a tabindex="0" role="button" id="save-button">Load Game</a>">>
<<horizontalEnd>>
<<script>>
// Ensure SugarCube save functionality
$(document).ready(function() {
// Direct save method for SugarCube
$('#save-button').on('click', function() {
// Explicitly use SugarCube's save method
try {
// Open saves dialog
UI.saves();
} catch (error) {
// Fallback error handling
console.error("Save functionality error:", error);
alert("Save function could not be executed.");
}
});
});
<</script>>
<<script>>
window.HealthSanitySystem.addHealth(50)
<</script>>
<<set $srcsf = 2>>
<<set $EventE3 = 1>>
<<include "Change_MenuIMG">><<dialogue "" "With a shove, the patient knocks you to the ground. You barely manage to roll when the deranged man, his eyes hollow and lifeless, grabs your leg. With unsettling strength, he drags you down the dark hallway. You struggle to break free, but your limbs feel heavy. Your fingernails scrape against the floor in a desperate attempt to hold onto something. Terror and the lack of air blur your vision. You feel a sharp blow to the head against the floor… and everything fades to black." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Coninue|E1b]]">>
<<addDialogue "" "<a tabindex="0" role="button" id="save-button">Load Game</a>">>
<<horizontalEnd>>
<<script>>
// Ensure SugarCube save functionality
$(document).ready(function() {
// Direct save method for SugarCube
$('#save-button').on('click', function() {
// Explicitly use SugarCube's save method
try {
// Open saves dialog
UI.saves();
} catch (error) {
// Fallback error handling
console.error("Save functionality error:", error);
alert("Save function could not be executed.");
}
});
});
<</script>>
<<script>>
window.HealthSanitySystem.addHealth(50)
<</script>>
<<set $bwfight2 = 2>>
<<set $bwinfight = true>>
<<set $bwinfight2 = true>>
<<set $EventE2 = 0>>
<<include "Change_MenuIMG">><<dialogue "" "You fall to the floor, the patient grabs your leg. With unsettling strength, he drags you down the dark hallway. You struggle to break free, but your limbs feel heavy. Your fingernails scrape against the floor in a desperate attempt to hold onto something. You feel a sharp blow to the head against the floor… and everything fades to black." "description">>
<<addDialogue "Patient" "It’s over… you’re mine…" "talk">>
<<addDialogue "" "He pulls down his pants." "description">>
<<addDialogue "" "[[Continue|E4b]]">>
<<addDialogue "" "<a tabindex="0" role="button" id="save-button">Load Game</a>">>
<<script>>
// Ensure SugarCube save functionality
$(document).ready(function() {
// Direct save method for SugarCube
$('#save-button').on('click', function() {
// Explicitly use SugarCube's save method
try {
// Open saves dialog
UI.saves();
} catch (error) {
// Fallback error handling
console.error("Save functionality error:", error);
alert("Save function could not be executed.");
}
});
});
<</script>>
<<script>>
window.HealthSanitySystem.addHealth(50)
<</script>>
<<set $srcff = 2>>
<<set $EventE4 = 1>>
<<include "Change_MenuIMG">><<dialogue "" "A damp, metallic smell invades your nostrils as you open your eyes. The faint light flickers above your head, casting distorted shadows on the cracked walls. Your wrists, ankles, and chest burn under the pressure of cracked leather straps that bind you to a rusty, grimy bedframe. A chill runs down your bare skin." "description">>
<<addVideo "media/casey/escape.mp4">>
<<horizontalStart>>
<<addDialogue "" "[[Escape|escape]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(10)
<</script>>
<<set $Corruption += 1>>
<<set $CaseyRape += 1>>
<<if $CaseyRape gte 10>>
<<goto "RapeSuck">>
<</if>>
<<setAvatarDirect "nude.png">>
<<if $escapeVideo isnot true>>
<<unlockVideo 1 5>>
<<set $escapeVideo = true>>
<</if>><<dialogue "" "A damp, metallic smell invades your nostrils as you open your eyes. The faint light flickers above your head, casting distorted shadows on the cracked walls. Your wrists, ankles, and chest burn under the pressure of cracked leather straps that bind you to a rusty, grimy bedframe. A chill runs down your bare skin." "description">>
<<addVideo "media/casey/escape.mp4">>
<<horizontalStart>>
<<addDialogue "" "[[Escape|escape]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(10)
<</script>>
<<set $Corruption += 1>>
<<set $CaseyRape += 1>>
<<if $CaseyRape gte 10>>
<<goto "RapeSuck">>
<</if>>
<<if $CaseyRape gte 10>>
<<goto "RapeSuck">>
<</if>>
<<setAvatarDirect "nude.png">>
<<if $escapeVideo isnot true>>
<<unlockVideo 1 5>>
<<set $escapeVideo = true>>
<</if>><<dialogue "" "You’re lying down. Your vision blurs. From above, he falls on you like a beast. You writhe, but you have no strength. Your arms tremble. He sniffs you. He licks you. He grins with an inhuman grimace." "description">>
<<addDialogue "Patient" "Mine… only mine… my treasure." "talk">>
<<addDialogue "" "His fingers slide inside you without resistance, slightly parting your lower lips while his member relentlessly punishes your anus. And you can do nothing but scream." "description">>>
<<addVideo "media/casey/castigoanal.mp4">>
<<addDialogue "" "His fingers slide inside you without resistance, slightly parting your lower lips while his member relentlessly punishes your anus. And you can do nothing but scream." "description">>>
<<addVideo "media/casey/castigoanal2.mp4">>
<<addDialogue "" "The man, breathing heavily with a twisted look of satisfaction, slowly steps back. Without saying a word, he pulls his clothes back on and leaves, the door creaking shut behind him." "description">>>
<<horizontalStart>>
<<addDialogue "" "[[Escape|escape3]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(10)
<</script>>
<<set $Corruption += 2>>
<<set $CaseyRape += 1>>
<<if $CaseyRape gte 10>>
<<goto "RapeSuck">>
<</if>>
<<setAvatarDirect "nude.png">>
<<if $escapeVideo isnot true>>
<<unlockVideo 1 6>>
<<unlockVideo 1 7>>
<<set $escapeVideo = true>>
<</if>><<dialogue "" "You’re lying down. Your vision blurs. From above, he falls on you like a beast. You writhe, but you have no strength. Your arms tremble. He sniffs you. He licks you. He grins with an inhuman grimace." "description">>
<<addDialogue "Patient" "Mine… only mine… my treasure." "talk">>
<<addDialogue "" "His fingers slide inside you without resistance, slightly parting your lower lips while his member relentlessly punishes your anus. And you can do nothing but scream." "description">>>
<<addVideo "media/casey/castigoanal.mp4">>
<<addDialogue "" "His fingers slide inside you without resistance, slightly parting your lower lips while his member relentlessly punishes your anus. And you can do nothing but scream." "description">>>
<<addVideo "media/casey/castigoanal2.mp4">>
<<addDialogue "" "The man, breathing heavily with a twisted look of satisfaction, slowly steps back. Without saying a word, he pulls his clothes back on and leaves, the door creaking shut behind him." "description">>>
<<horizontalStart>>
<<addDialogue "" "[[Escape|escape3]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(10)
<</script>>
<<set $Corruption += 2>>
<<set $CaseyRape += 1>>
<<if $CaseyRape gte 10>>
<<goto "RapeSuck">>
<</if>>
<<setAvatarDirect "nude.png">>
<<if $escapeVideo isnot true>>
<<unlockVideo 1 6>>
<<unlockVideo 1 7>>
<<set $escapeVideo = true>>
<</if>><<dialogue "" " The lobotomized patient crawls toward you, panting. His pants are down. His body is a mass of scars and sick lust. He no longer masturbates. Now he’s looking at you. He doesn’t speak. He just lunges. You try to raise your arm, but you can’t. Your muscles don’t respond. He pins you to the ground. His nails tear into your exposed flesh." "description">>
<<addDialogue "" "He doesn’t scream. He just breathes… heavily, animalistic, like an aroused predator. And then you feel it. The… penetration. An invasion. Your body doesn’t react, but your soul writhes." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|E5b]]">>
<<addDialogue "" "<a tabindex="0" role="button" id="save-button">Load Game</a>">>
<<horizontalEnd>>
<<script>>
// Ensure SugarCube save functionality
$(document).ready(function() {
// Direct save method for SugarCube
$('#save-button').on('click', function() {
// Explicitly use SugarCube's save method
try {
// Open saves dialog
UI.saves();
} catch (error) {
// Fallback error handling
console.error("Save functionality error:", error);
alert("Save function could not be executed.");
}
});
});
<</script>>
<<script>>
window.HealthSanitySystem.addHealth(50)
<</script>>
<<set $Sroom2 = 2>>
<<set $fapperisgone = true>>
<<set $EventE5 = 1>>
<<include "Change_MenuIMG">><<dialogue "" "You’re lying down. Your vision blurs. From above, he falls on you like a beast. You writhe, but you have no strength. Your arms tremble. He sniffs you. He licks you. He grins with an inhuman grimace." "description">>
<<addDialogue "Patient" "Mine… only mine… my treasure." "talk">>
<<addVideo "media/casey/castigoanal.mp4">>
<<addDialogue "" "His fingers slide inside you without resistance, slightly parting your lower lips while his member relentlessly punishes your anus. And you can do nothing but scream." "description">>>
<<addVideo "media/casey/castigoanal2.mp4">>
<<addDialogue "" "The man, breathing heavily with a twisted look of satisfaction, slowly steps back. Without saying a word, he pulls his clothes back on and leaves, the door creaking shut behind him." "description">>>
<<horizontalStart>>
<<addDialogue "" "[[Escape|escape5]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(10)
<</script>>
<<set $Corruption += 1>>
<<set $CaseyRape += 1>>
<<if $CaseyRape gte 10>>
<<goto "RapeSuck">>
<</if>>
<<setAvatarDirect "nude.png">>
<<if $escapeVideo isnot true>>
<<unlockVideo 1 6>>
<<unlockVideo 1 7>>
<<set $escapeVideo = true>>
<</if>><<dialogue "" "You’re lying down. Your vision blurs. From above, he falls on you like a beast. You writhe, but you have no strength. Your arms tremble. He sniffs you. He licks you. He grins with an inhuman grimace." "description">>
<<addDialogue "Patient" "Mine… only mine… my treasure." "talk">>
<<addDialogue "" "His fingers slide inside you without resistance, slightly parting your lower lips. And you can do nothing." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|E6b]]">>
<<addDialogue "" "<a tabindex="0" role="button" id="save-button">Load Game</a>">>
<<horizontalEnd>>
<<script>>
// Ensure SugarCube save functionality
$(document).ready(function() {
// Direct save method for SugarCube
$('#save-button').on('click', function() {
// Explicitly use SugarCube's save method
try {
// Open saves dialog
UI.saves();
} catch (error) {
// Fallback error handling
console.error("Save functionality error:", error);
alert("Save function could not be executed.");
}
});
});
<</script>>
<<script>>
window.HealthSanitySystem.addHealth(50)
<</script>>
<<set $MHenemy = true>>
<<set $MHfight = 2>>
<<set $EventE6 = 1>>
<<include "Change_MenuIMG">><<dialogue "" "You’re lying down. Your vision blurs. From above, he falls on you like a beast. You writhe, but you have no strength. Your arms tremble. He sniffs you. He licks you. He grins with an inhuman grimace." "description">>
<<addDialogue "Patient" "Mine… only mine… my treasure." "talk">>
<<addVideo "media/casey/castigoanal.mp4">>
<<addDialogue "" "His fingers slide inside you without resistance, slightly parting your lower lips while his member relentlessly punishes your anus. And you can do nothing but scream." "description">>>
<<addVideo "media/casey/castigoanal2.mp4">>
<<addDialogue "" "The man, breathing heavily with a twisted look of satisfaction, slowly steps back. Without saying a word, he pulls his clothes back on and leaves, the door creaking shut behind him." "description">>>
<<horizontalStart>>
<<addDialogue "" "[[Escape|escape6]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(10)
<</script>>
<<set $Corruption += 2>>
<<set $CaseyRape +=1>>
<<if $CaseyRape gte 10>>
<<goto "RapeSuck">>
<</if>>
<<setAvatarDirect "nude.png">>
<<if $escapeVideo isnot true>>
<<unlockVideo 1 6>>
<<unlockVideo 1 7>>
<<set $escapeVideo = true>>
<</if>><<if window.gameState.lanternOn>>
<<goto "CellCorridorA2Light">>
<<else>>
<<dialogue "" "The rusty doors on both sides have scratches and stains around the barred windows." "description">>
<<horizontalStart>>
<<if $lfd isnot true>>
<<addDialogue "" "[[Left Door|lfd]]">>
<<else>>
<<addDialogue "" "[[Examination room|ConsA]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Bedooms (A) coridor|BedroomA]]">>
<<addDialogue "" "[[Back to Grand Hall|CellCorridorA]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>><<dialogue "" "Your flashlight's beam lights up a hallway leading to a maze of corridors. The walls are covered in grime and fingerprints, and the doors to the patients' rooms are visible in the distance." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Corridor - Bedrooms A|CellCorridorA2]]">>
<<addDialogue "" "[[Grand Hall|Grand Hall]]">>
<<horizontalEnd>>
<<dialogue "" "The light up the curving corridor. The rusty doors on both sides have scratches and stains around the barred windows." "description">>
<<horizontalStart>>
<<if $lfd isnot true>>
<<addDialogue "" "[[Left Door|lfd]]">>
<<else>>
<<addDialogue "" "[[Examination room|ConsA]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Bedooms (A) coridor|BedroomA]]">>
<<addDialogue "" "[[Back to Grand Hall|CellCorridorA]]">>
<<horizontalEnd>>
<<set $enemyChance = random(5)>>
<<if $enemyChance lte 1>>
<<goto "CorridorA2enemy">>
<</if>><<dialogue "" "The door is open." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|ConsA]]">>
<<addDialogue "" "[[Back|CellCorridorA2]]">>
<<horizontalEnd>>
<<if window.gameState.lanternOn>>
<<goto "ConsAlight">>
<<else>>
<<dialogue "" "A dim light filtering through the window illuminates the center of the room, where a dark figure—the stretcher—casts a long, ominous shadow. The rest is a mass of darkness, with barely distinguishable silhouettes of furniture. The air smells of stale disinfectant and something more metallic. Every sound is amplified, as if the walls are breathing with you." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Exit|CellCorridorA2]]">>
<<horizontalEnd>>
<</if>>
<<set $lfd = true>>
<<if window.gameState.lanternOn>>
<<goto "BedroomALight">>
<<else>>
<<dialogue "" "The darkness is penetrating in what seems like an endless long corridor. A smell of ancient dust and deteriorated paper floats in the stagnant air. Your fingers occasionally brush against rough surfaces you cannot identify. The claustrophobic sensation increases with each uncertain step. The silence is only interrupted by distant creaks and the occasional metallic sound you cannot locate." "description">>
<<horizontalStart>>
<<if $doorA isnot true>>
<<addDialogue "" "[[Left Door|doorA]]">>
<<else>>
<<addDialogue "" "[[Room 111|roomA]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Go to Grand Hall|CellCorridorA2]]">>
<<addDialogue "" "[[Corridor - Bedrooms C|CellCorridorC]]">>
<<addDialogue "" "[[Go to livingroom|CellCorridorD]]">>
<<addDialogue "" "[[Corridor - Bedrooms B|CellCorridorB]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<if $brokeSister isnot true>>
<<createAdvancedEvent "SanityStress" 0 "<" "passage" "brokeSister2" false "sanity">>
<</if>> <<set $randomText = random(1)>>
<<if $randomText is 0>>
<<dialogue "" "Something is moving in the darkness, stepping out from the shadows attracted by the light of your flashlight." "description">>
<<else>>
<<dialogue "" "The light from your flashlight reveals a silhouette at the end of the hallway. It's a nurse with a torn and blood-stained uniform, her face contorted in an inhuman grimace. Suddenly, she turns her head towards you." "description">>
<<addDialogue "Mad Nurse" " Patient... escaping..." "talk">>
<<addDialogue "Casey" "I'm not a fucking patient!" "talk">>
<<addDialogue "" "Her hands hold a rusty, abnormally large object. She lunges at you with impossible speed." "description">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Fight|CorridorA2fight]]">>
<<horizontalEnd>>
<<set $corridorANurse = 1>>
<<dialogue "" "You walk down the hallway. Suddenly, you hear a sound that chills your blood: a wet, distorted babble. You stop, your breath quickening. From a dark corner, the creature appears—a deformed being with a grotesque appearance. It slowly crawls toward you. The creature is coming for you." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Fight|demonA2pelea]]">>
<<horizontalEnd>>
<<set $Fnurse = 0>>
<<set $DemonA2 = 1>><<dialogue "" "The medical furniture is covered in dust and cobwebs, with remnants of old bandages scattered across the countertop. In the center, the blood-stained stretcher looks more like a torture altar than a medical instrument. The walls are decorated with faded wallpaper and half-fallen medical warnings. The window at the back barely allows a glimpse of rain hitting the glass." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Exit|CellCorridorA2]]">>
<<horizontalEnd>>
<<dialogue "" "The door is open." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|roomA]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|BedroomA]]" "center">>
<<if window.gameState.lanternOn>>
<<goto "roomALight">>
<<else>>
<<dialogue "" "You slowly peek your head in... but see nothing. The darkness in this room is total, suffocating—like a black veil that smothers your senses. There are no windows, no lights, not even the faintest glimmer of reflection." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Exit|BedroomA]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<set $doorA = true>>
<<if window.gameState.lanternOn>>
<<goto "CellCorridorCLight">>
<<else>>
<<dialogue "" "The flickering fluorescent emergency lights cast a faint, sickly green glow over the hallway, their soft hum the only sound. Dark stains and marks mar the walls, some scrawled into frantic words you can’t quite decipher. The wet floor reflects the eerie light, and a faint chill clings to the space." "description">>
<<horizontalStart>>
<<if $ConsC isnot true>>
<<addDialogue "" "[[Right Door|ConsdoorC]]">>
<<else>>
<<addDialogue "" "[[Examination room|ConsC]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Corridor - Bedrooms A|BedroomA]]">>
<<addDialogue "" "[[Corridor - Bedrooms D|BedroomD]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<<if $bbenemy isnot true>>
<<goto "bbenemy">>
<</if>>
<</if>><<if window.gameState.lanternOn>>
<<goto "CellCorridorDLight">>
<<else>>
<<dialogue "" "The hallway is narrow, wrapped in thick darkness. Only your flashlight cuts through the shadows, revealing fragments of peeling walls that seem ready to collapse. The cracked linoleum crunches beneath your feet. On either side, rusted metal doors line the corridor at uneven intervals, like forgotten sentinels." "description">>
<<horizontalStart>>
<<if $RedE isnot true>>
<<addDialogue "" "[[Left Door|RedEdoor]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<if $RedE is true>>
<<addDialogue "" "[[Red elevators|RedE]]">>
<</if>>
<<addDialogue "" "[[Corridor - Bedrooms A|BedroomA]]">>
<<addDialogue "" "[[Livingroom]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<script>>
window.setLighting(50);
<</script>>
<<if window.gameState.lanternOn>>
<<goto "CellCorridorBLight">>
<<else>>
<<dialogue "" "Darkness swallows the narrow hallway. You can’t see the floor beneath you, only feel its uneven surface under your steps. The air is heavy, damp, and still. A faint metallic scent lingers. Shapes loom in the blackness—doors, maybe—but nothing is certain. Every sound echoes too loudly, and the silence in between feels alive." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Corridor - Bedrooms A|BedroomA]]">>
<<addDialogue "" "[[Corridor - Bedrooms B|BedroomB]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<dialogue "" "The light reveals a long hallway with numbered doors on both sides. The once-elegant wallpaper now hangs in yellowish tatters from moisture-stained walls. Several doors stand ajar, others remain firmly closed with rusted locks. The rotting wooden floor sinks slightly beneath your feet. Old photographs in dusty frames adorn the walls between the rooms, their faces barely recognizable under layers of dirt and time.">>
<<horizontalStart>>
<<if $doorA isnot true>>
<<addDialogue "" "[[Left Door|doorA]]">>
<<else>>
<<addDialogue "" "[[Room 111|roomA]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Go to Grand Hall|CellCorridorA2]]">>
<<addDialogue "" "[[Corridor - Bedrooms C|CellCorridorC]]">>
<<addDialogue "" "[[Go to livingroom|CellCorridorD]]">>
<<addDialogue "" "[[Corridor - Bedrooms B|CellCorridorB]]">>
<<horizontalEnd>><<dialogue "" "The light cuts through the darkness, revealing a room frozen in time. Dust floats in the air, caught in the cone of light, and the beam flickers slightly as it passes over peeling walls and rusted metal. To one side, there's a metal bed covered with a stained, crumpled sheet. Beside it, a rusted nightstand holds what looks like an empty pill bottle and a shattered framed photo. In the opposite corner, a rotting wooden chair lies toppled over, as if someone had pushed it violently." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Exit|BedroomA]]">>
<<horizontalEnd>>
<<if $bwfight is 1>>
<<createAdvancedEvent "HealthAndVariable" 10 "<" "passage" "E1" true "health" "EventE1"
1>>
<</if>>
<<if $bwfight2 is 1>>
<<createAdvancedEvent "HealthAndVariable" 10 "<" "passage" "E2" true "health" "EventE2"
1>>
<</if>>
<<if $srcsf is 1>>
<<createAdvancedEvent "HealthAndVariable" 10 "<" "passage" "E3" true "health" "EventE3"
1>>
<</if>>
<<if $Sroom2 is 1>>
<<createAdvancedEvent "HealthAndVariable" 10 "<" "passage" "E4" true "health" "EventE4"
1>>
<</if>>
<<if $srcsf is 1>>
<<createAdvancedEvent "HealthAndVariable" 10 "<" "passage" "E5" true "health" "EventE5"
1>>
<</if>>
<<if $MHfight is 1>>
<<createAdvancedEvent "HealthAndVariable" 10 "<" "passage" "E6" true "health" "EventE6"
1>>
<</if>>
<<createAdvancedEvent "HealthAndVariable" 10 "<" "passage" "nurseEvent" true "health" "TNurses"
1>>
<<if $aberrationfight1 is 1>>
<<createAdvancedEvent "HealthAndVariable" 10 "<" "passage" "Event_Aberration01" true "health" "AberrationEvent"
1>>
<</if>><<if window.gameState.lanternOn>>
<<goto "BedroomBLight">>
<<else>>
<<dialogue "" "A narrow hallway shrouded in darkness. Peeling walls barely visible in the gloom. Remnants of cracked linoleum on the floor. Rusted metal doors aligned at irregular intervals." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Common Showers|showerB]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Corridor - Bedrooms A|CellCorridorB]]">>
<<addDialogue "" "[[Corridor - Bedrooms C|CellCorridorB2]]">>
<<horizontalEnd>>
<<script>>
window.decreaseSanity(5);
<</script>>
<</if>><<dialogue "" "The flashlight casts a weak, flickering beam down the narrow hallway. Faded stains and cracks mar the floor beneath your feet. The walls, flaking and damp, seem to close in around you. Rusted metal doors line the corridor, each one slightly ajar, as if waiting. The silence is thick, broken only by the soft hum of your flashlight." "description">>
<<horizontalStart>>
<<if $leftroomB isnot true>>
<<addDialogue "" "[[Left Door|LeftdoorB]]">>
<<else>>
<<addDialogue "" "[[Left Room|LeftroomB]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Corridor - Bedrooms A|BedroomA]]">>
<<addDialogue "" "[[Corridor - Bedrooms B|BedroomB]]">>
<<horizontalEnd>>
<<dialogue "" "The door is open." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|LeftroomB]]">>
<<addDialogue "" "[[Back|CellCorridorB]]">>
<<horizontalEnd>>
<<if window.gameState.lanternOn>>
<<goto "LeftroomBLight">>
<<else>>
<<addDialogue "" "The darkness envelops you completely. You can't see anything, only sense the presence of the room around you through the thick, heavy air." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Exit|CellCorridorB]]">>
<<horizontalEnd>>
<</if>>
<<dialogue "" "The light weakly illuminates the room, revealing an old metal bed. The sheets are messy, torn, and dirty. In the corner, a wooden wardrobe, slightly crooked, with the door ajar, and stacked boxes nearby, covered in dust." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Check boxes|boxesB]]">>
<<addDialogue "" "[[Check wardrobe|wardrobeB]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Exit|CellCorridorB]]" "center">>
<<if $itemhere isnot true>>
<<set $Randomsearch = random(2)>>
<<if $Randomsearch is 0>>
<<dialogue "" "You find 4 cheap batteries. " "description">>
<<addImage "img/events/boxes.png">>
<<horizontalStart>>
<<addDialogue "" "[[Take batteries|lrbateries]]">>
<<horizontalEnd>>
<<elseif $Randomsearch is 1>>
<<dialogue "" "You find 18 rounds 9mm. " "description">>
<<addImage "img/events/boxes.png">>
<<horizontalStart>>
<<addDialogue "" "[[Take ammo|lrab]]">>
<<horizontalEnd>>
<<elseif $Randomsearch is 2>>
<<dialogue "" "You find 15 incendiary rounds 9mm." "description">>
<<addImage "img/events/boxes.png">>
<<horizontalStart>>
<<addDialogue "" "[[Take ammo|lrab2]]">>
<<horizontalEnd>>
<</if>>
<<addImage "img/events/boxes.png">>
<<horizontalStart>>
<<addDialogue "" "[[Back|LeftroomB]]">>
<<horizontalEnd>>
<<else>>
<<dialogue "" "You open the boxes, but they're empty, just filled with dust. There's nothing left. Everything has been taken." "description">>
<<addImage "img/events/boxes.png">>
<<horizontalStart>>
<<addDialogue "" "[[Back|LeftroomB]]">>
<<horizontalEnd>>
<</if>>
<<if $osito isnot true>>
<<dialogue "" "Lying in the corner of the wardrobe, half-buried under crumpled clothes, is a small dusty teddy bear. One of its button eyes is missing, leaving behind a dark, empty socket. Its fur is matted, and its seams are barely holding together. Someone once held it close... a long time ago." "description">>
<<addImage "img/events/wardrobe.png">>
<<horizontalStart>>
<<addDialogue "" "[[Take teddy bear|teddy]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|LeftroomB]]" "center">>
</div>
</div>
<<else>>
<<dialogue "" "You open the wardrobe slowly, the door creaking loudly in the silence. Inside, there's only a tangle of dust-covered clothes, moth-eaten and brittle to the touch. Whatever was once here is long gone. Nothing useful remains." "description">>
<<addImage "img/events/wardrobe.png">>
<<addDialoguePos "" "[[Back|LeftroomB]]" "center">>
<</if>>
<<dialogue "" "The batteries are in your power now." "description">>
<<addImage "img/events/boxes.png">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|LeftroomB]]">>
<<horizontalEnd>>
<<addItem "battery" 4>>
<<set $itemhere = true>>
<<dialogue "" "You take the ammo." "description">>
<<addImage "img/events/boxes.png">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|LeftroomB]]">>
<<horizontalEnd>>
<<script>>
addAmmo('9mm', 18)
<</script>>
<<set $itemhere = true>>
<<dialogue "" "You take the ammo." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Back|LeftroomB]]">>
<<horizontalEnd>>
<<script>>
addAmmo('incendiary', 15)
<</script>>
<<set $itemhere = true>>
<<addImage "img/events/boxes.png">> <<dialogue "" "You pick up the teddy bear and place it in your backpack." "description">>
<<addImage "img/events/wardrobe.png">>
<<horizontalStart>>
<<addDialogue "" "[[Back|CellCorridorB]]">>
<<horizontalEnd>>
<<script>>
const itemKey = 'teddybear';
const itemName = 'Tedd Bear';
const itemDescription = 'A small trinket that brings good fortune (restore 100 sanity).';
const itemValue = 300;
const imagePath = `img/items/special/teddybear.png`;
window.itemDatabase[itemKey] = {
name: itemName,
description: itemDescription,
category: "special",
image: imagePath,
stackable: true,
maxStack: 1,
value: itemValue,
weight: 0.2,
isSellable: true,
sanityRestore: 100
};
window.ShopSystem.sellPrices[itemName] = {
buy: itemValue,
sell: Math.floor(itemValue * 0.75),
stock: 1,
img: imagePath
};
//Adding item ro inventory
const item = window.createItemInstance(itemKey, 1);
const result = window.InventorySystem.addItem(item);
if (result && window.ItemNotificationSystem) {
window.ItemNotificationSystem.show(itemKey, 1, `${itemName} acquired!`);
}
window.ShopSystem.populateSellItems();
<</script>>
<<set $osito = true>>
<<if window.gameState.lanternOn>>
<<goto "showerBLight">>
<<else>>
<<dialogue "" "Impenetrable darkness between damp walls. The echo of constant dripping resonates in the invisible space. A penetrating smell of mold and rust fills the dense air. Broken tiles crunch under your feet as you move blindly forward. The humidity clings to your skin in this black void." "description">>
<<addDialoguePos "" "[[Exit|BedroomB]]" "center">>
<</if>>
<<if window.gameState.lanternOn>>
<<goto "CellCorridorB2Light">>
<<else>>
<<dialogue "" "Darkness surrounds you. The air feels stale with humidity. Occasional drops of water punctuate the floor beneath your feet alternates between worn stone and patches of slippery, unidentifiable substances. A faint, distant rumor trembles through the floor at irregular intervals, like the breath of something massive stirring far below." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Corridor - Bedrooms B|BedroomB]]">>
<<addDialogue "" "[[Corridor - Bedrooms C|BedroomC]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<dialogue "" "The flashlight casts a weak, flickering beam down the narrow hallway. Faded stains and cracks mar the floor beneath your feet. The walls, flaking and damp, seem to close in around you. Rusted metal doors line the corridor, each one slightly ajar, as if waiting. The silence is thick, broken only by the soft hum of your flashlight." "description">>
<<horizontalStart>>
<<if $leftroomB isnot true>>
<<addDialogue "" "[[Left Door|LeftdoorB]]">>
<<else>>
<<addDialogue "" "[[Left Room|LeftroomB]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Corridor - Bedrooms A|BedroomA]]">>
<<addDialogue "" "[[Corridor - Bedrooms B|BedroomB]]">>
<<horizontalEnd>>
<<if $ActiveBB is true>>
<<set $enemyChance = random(5)>>
<<if $enemyChance is 5>>
<<goto "BedBenemyBB">>
<</if>>
<</if>><<dialogue "" "The light reveals rows of rusted showerheads hanging from walls covered in greenish mold. Stagnant puddles reflect the light beam on the floor of broken tiles. As you move the light to one side, metal lockers appear lined against the wall, their dented doors ajar, some with padlocks still hanging, others showing their empty, rusted interiors." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Check first loocker|showerlockerB]]">>
<<addDialogue "" "[[Check second loocker|showerlockerB2]]">>
<<addDialogue "" "[[Check third loocker|showerlockerB3]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Exit|BedroomB]]" "center">>
<<dialogue "" "You open the locker's door, its empty." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Get inside|LockerB]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|showerB]]" "center">>
<<dialogue "" "The locker door is jammed and cannot be opened." "description">>
<<addDialoguePos "" "[[Back|showerB]]" "center">>
<<if $showerbAmmo isnot true>>
<<dialogue "" "As you rummage through the cabinet, you find 20 rounds 9mm." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take ammo|LockerBammo]]">>
<<addDialogue "" "[[Get inside|LockerB]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|showerB]]" "center">>
<<else>>
<<dialogue "" "Nothing remains." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Get inside|LockerB]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|showerB]]" "center">>
<</if>>
<<dialogue "" "You pick up the 9mm ammo and put it in your backpack." "description">>
<<addDialogue "Casey" "This is good..." "talk">>
<<addDialoguePos "" "[[Back|showerB]]" "center">>
<<script>>window.addItemFromDatabase('pistol_ammo', 24);<</script>>
<<set $showerbAmmo = true>><<switch visited()>>
<<case 1>>
<<dialogue "" "You hide in the locker, the cold metal pressing against your back. Nothing’s chasing you, but the abandoned psychiatric hospital, with its echoes of kidnappings and lurking monsters, keeps you on edge. A distant creak tightens your nerves." "description">>
<<addDialogue "Casey" "Phew... this is claustrophobic. I hope I don't have to do this many times..." "talk">>
<<default>>
<<dialogue "" "You hide in the locker, the cold metal pressing against your back. Nothing’s chasing you, but the abandoned psychiatric hospital, with its echoes of kidnappings and lurking monsters, keeps you on edge." "description">>
<<set $randomComent = random(5)>>
<<if $randomComent is 5>>
<<addDialogue "Casey" "Phew... this is claustrophobic. I hope I don't have to do this many times..." "talk">>
<</if>>
<</switch>>
<<addDialoguePos "" "[[Exit|showerB]]" "center">>
<<if $DemonHunt is true>>
<<goto "DemonHuntSkip">>
<</if>>
<<dialogue "" "You slip into the locker, the icy metal digging into your back, your pulse pounding in your ears. A twisted shadow with claws that scrape the floor of the abandoned psychiatric hospital moves, prowling, its heavy steps grinding closer down the corridor." "description">>
<<addDialogue "" "Keep moving, damn monster. Just have to wait, you think, keeping your nerves in check, eyes locked on the slivers of light through the locker’s vents flickering with the creature’s every move." "thoughts">>
<<addDialogue "" "The air grows thicker with each step of the demon, its claws grazing the walls, searching. You hold your breath as it stops right outside, so close you can hear the drag of its skin against the floor. A low growl rumbles in the silence, and for a moment, you think the locker door will give way. But then, the steps resume, slower, fading. The scrape of its claws dwindles down the hallway until only heavy, fragile silence remains." "description">>
<<addDialogue "Casey" "Finally…" "talk">>
<<addDialoguePos "" "[[Exit|BedroomB]]" "center">>
<<set $DemonHunt = false>>
<<ser $DemonPelea = 0>>
<<removecountdown>>
<<script>>
setTimeout(() => {
audioSystemCrossfade('lobytheme.mp3', 4000);
}, 1000);
<</script>><<switch visited()>>
<<case 1>>
<<dialogue "" "You walk down the hallway, the darkness almost swallowing the decaying walls. A sound makes you stop—a wet gurgle, like a baby’s babble twisted by something evil." "description">>
<<addDialogue "Casey" "What the hell?! That thing again!" "talk">>
<<addDialogue "" "That’s not human... This isn’t right, you think, heart pounding as the blackness seems to pulse around you." "thoughts">>
<<addDialogue "" "Then, from a dark corner, you see it: a demonic baby. Its wrinkled, ashen skin gives off a faint, sickly glow. Sunken eyes shine with pure hatred, and its grotesque mouth reveals needle-like teeth. It crawls slowly toward you, hissing—a sound that turns your stomach." "description">>
<<addDialogue "Casey" "Don’t come any closer, you damned thing!" "talk">>
<div id="Ntext">A high-pitched scream pierces the air, as if the creature were mocking you, and the hallway seems to vibrate with its evil presence." "description">>
<<default>>
<<dialogue "" "You walk down the hallway. Suddenly, you hear a sound that chills your blood: a wet, distorted babble. You stop, your breath quickening. From a dark corner, the creature appears—a deformed being with a grotesque appearance. It slowly crawls toward you. The creature is coming for you." "description">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Fight|bbfight2]]">>
<<horizontalEnd>>
<<set $BedroomBPeleaBB = 1>>
<<timed 1s>>
<<script>>
playSoundDirect('evilbb.mp3');
<</script>>
<</timed>>
<<timed 10s>>
<<script>>
playSoundDirect('evilbb.mp3');
<</script>>
<</timed>>
<<set $RandomDistance = random(10)>>
<<if $RandomDistance gte 0>>
<<run startAdvancedBattle([
{
hp: 50,
distance: 20,
randomDistance: true,
speed: "3-8",
minMovement: 3,
maxMovement: 8,
damage: 1,
sanityDamage: 6,
DamageIgnore: {
'pistol': 0.1,
'rifle': 0.1,
'shotgun': 0.1,
'melee': 0.1,
'incendiary': 0.1,
'dragon_breath': 0.1,
'tracer': 0.1,
'9mm': 0.1,
'.45': 0.1,
'slugs': 0.1
}
}
], 'VictoryPassage', true, 'CombatEscape', false)>>
<<elseif $RandomDistance gt 4>>
<<run startAdvancedBattle([
{
type: 'mawling',
hp: 50,
distance: 20,
randomDistance: true,
speed: "3-8",
minMovement: 3,
maxMovement: 8,
damage: 1,
sanityDamage: 6,
DamageIgnore: {
'pistol': 0.1,
'rifle': 0.1,
'shotgun': 0.1,
'melee': 0.1,
'incendiary': 0.1,
'dragon_breath': 0.1,
'tracer': 0.1,
'9mm': 0.1,
'.45': 0.1,
'slugs': 0.1
}
}
], 'VictoryPassage', true, 'CombatEscape', false)>>
<<elseif $RandomDistance gt 8>>
<<run startAdvancedBattle([
{
type: 'mawlingStrong',
hp: 70,
distance: 20,
randomDistance: true,
speed: "3-8",
minMovement: 3,
maxMovement: 8,
damage: 2,
sanityDamage: 8,
DamageIgnore: {
'pistol': 0.2,
'rifle': 0.2,
'shotgun': 0.2,
'melee': 0.2,
'incendiary': 0.2,
'dragon_breath': 0.2,
'tracer': 0.2,
'9mm': 0.2,
'.45': 0.2,
'slugs': 0.2
}
}
], 'VictoryPassage', true, 'CombatEscape', false)>>
<</if>>
<<if window.ClothingSystem.currentClothes === 'jacket'>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<elseif window.ClothingSystem.currentClothes === 'coat'>>
<<setAvatarDirect "caseycoatpistol.png">>
<<else>>
<<setAvatarDirect "caseycoatpistol.png">>
<</if>><<if window.gameState.lanternOn>>
<<goto "BedroomCLight">>
<<else>>
<<dialogue "" "A narrow hallway swallowed by shadows. The peeling walls are barely visible. The air is thick and damp. A few doors line the corridor, slightly ajar, as if waiting for someone to step through. Silence hangs heavy, but it doesn’t feel empty." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Common showers|showerC]]">>
<<if $Pasaduci isnot true>>
<<addDialogue "" "[[Left Door|PasaduciDoor]]">>
<<else>>
<<addDialogue "" "[[Room 140|Pasaduci]]">>
<</if>>
<<if $BCoffice isnot true>>
<<addDialogue "" "[[Right Door|ConsdoorC2]]">>
<<else>>
<<addDialogue "" "[[Office|BCoffice]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Corridor - Bedrooms B|CellCorridorB2]]">>
<<addDialogue "" "[[Corridor - Bedrooms D|CellCorridorC2]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>><<dialogue "" "The light reveals a long institutional corridor with peeling walls. Deteriorated bulletin boards hang askew, with yellowed papers and illegible medical notices. Exposed pipes run along the ceiling, occasionally dripping. On the walls, traces of scratches and frantic writing suggest the desperate communication attempts of former patients." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Corridor - Bedrooms B|BedroomB]]">>
<<addDialogue "" "[[Corridor - Bedrooms C|BedroomC]]">>
<<horizontalEnd>>
<<if window.gameState.lanternOn>>
<<goto "showerCLight">>
<<else>>
<<dialogue "" "You enter the communal shower room, but you can't see absolutely anything. The darkness is total, impenetrable." "description">>
<<addDialoguePos "" "[[Back|BedroomC]]" "center">>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<dialogue "" "The door is open." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|Pasaduci]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|BedroomC]]" "center">>
<<if $PasaduciEnemy isnot true>>
<<if window.gameState.lanternOn>>
<<goto "TwonursesEvent">>
<<else>>
<<goto "MonsterEvent">>
<</if>>
<</if>>
<<if window.gameState.lanternOn>>
<<goto "PasaduciCLight">>
<<else>>
<<dialogue "" "You can barely make out anything around you, just blurred shadows. However, you can see the hole in the floor, its irregular shape cutting through the dim light." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Inspect Hole|Bujero3]]">>
<<horizontalEnd>>
<</if>>
<<spacing "20px">>
<<addDialoguePos "" "[[Exit|BedroomC]]" "center">>
<<set $Pasaduci = true>>
<<if $bujero isnot true && $PasaduciEnemy is true>>
<<goto "Bujero">>
<</if>>
<<dialogue "" "The door is open." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|BCoffice]]">>
<<horizontalEnd>>
<<addDialoguePos "" "[[Back|BedroomC]]" "center">>
<<if window.gameState.lanternOn>>
<<goto "BCofficeLight">>
<<else>>
<<dialogue "" "The darkness engulfs you completely as you step into what seems to be an office, a black void that feels like it’s swallowing everything around you. You can’t make out any shapes or outlines, only sensing the empty space and a faint smell of dust that permeates the place." "description">>
<<addDialoguePos "" "[[Exit|BedroomC]]" "center">>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<if window.gameState.lanternOn>>
<<goto "CellCorridorC2Light">>
<<else>>
<<dialogue "" "The hallway is shrouded in darkness, and the heavy air seems to crush you. The nauseating smell of rot and dampness fills your nostrils. You can barely make out the shadows of the walls, but you can feel the presence of closed doors around you, some creaking from age. The floor, sticky and slippery, seems to absorb every step you take, while an oppressive silence fills the space." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Corridor - Bedrooms D|BedroomD]]">>
<<addDialogue "" "[[Corridor - Bedrooms C|BedroomC]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<dialogue "" "The beam of your flashlight cuts through the darkness, revealing a narrow hallway frozen in decay. Cracked linoleum lines the floor, and rusted doors sit unevenly along the walls. Dust floats in the air, disturbed by your steps. Everything feels still… but watched." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Common showers|showerC]]">>
<<if $Pasaduci isnot true>>
<<addDialogue "" "[[Left Door|PasaduciDoor]]">>
<<else>>
<<addDialogue "" "[[Room 140|Pasaduci]]">>
<</if>>
<<if $BCoffice isnot true>>
<<addDialogue "" "[[Right Door|ConsdoorC2]]">>
<<else>>
<<addDialogue "" "[[Office|BCoffice]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Corridor - Bedrooms B|CellCorridorB2]]">>
<<addDialogue "" "[[Corridor - Bedrooms D|CellCorridorC2]]">>
<<horizontalEnd>>
<<dialogue "" "The wall tiles, once white, are now stained and cracked, with mold spreading through the grout lines. The broken remains of a mirror above a grimy sink reflect the room in warped, unsettling fragments. At the back, several shower stalls stand in a row, their curtains torn or missing, revealing rusted drains and floors covered in mildew. Crushed plastic cups and broken pieces of soap dispensers are scattered across the damp, slippery floor." "description">>
<<addDialoguePos "" "[[Exit|BedroomC]]" "center">>
<<dialogue "" "You illuminate the office. The light reveals an old desk in the center, covered in dust, with an ancient computer on it. The monitor is off, its black screen faintly reflecting the light, and the keyboard is draped in cobwebs." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Check the desk|BCdesk]]">>
<<horizontalEnd>>
<<addDialoguePos "" "[[Exit|BedroomC]]" "center">>
<<set $BCoffice = true>>
<<switch visited()>>
<<case 1>>
<<dialogue "" "As you approach the desk, the light reveals the ancient computer: a scratched beige tower, dusty cables, and a dark monitor with a scratched screen. The keyboard, draped in cobwebs, has worn keys. To the right, a drawer with a rusted handle sits slightly ajar." "description">>
<<default>>
<<dialogue "" "The computer remains powered on at the desk." "description">>
<</switch>>
<<addImage "img/events/deskc2.png">>
<<horizontalStart>>
<<addDialogue "" "[[Open the drawer|bcdrawer]]">>
<<if $Pc isnot true>>
<<addDialogue "" "[[On pc|onpc]]">>
<<else>>
<<horizontalStart>>
<<addDialogue "" "<div class='main-menu-btn' id='save-button'>Save/Load</div>">>
<<horizontalEnd>>
<<addDialoguePos "" "[[Go back|BCoffice]]" "center">>
<</if>>
<<script>>
// Ensure SugarCube save functionality
$(document).ready(function() {
// Direct save method for SugarCube
$('#save-button').on('click', function() {
// Explicitly use SugarCube's save method
try {
// Open saves dialog
UI.saves();
} catch (error) {
// Fallback error handling
console.error("Save functionality error:", error);
alert("Save function could not be executed.");
}
});
});
<</script>><<if $bcbatteries isnot true>>
<<dialogue "" "You carefully pull on the rusty drawer, causing its metal rails to squeak in protest. Inside, beneath scattered paper clips and forgotten pens, are 2 Medium batteries resting against the back of the drawer." "description">>
<<addImage "img/events/deskc2.png">>
<<horizontalStart>>
<<addDialogue "" "[[Take batteries|BCbatteries]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|BCoffice]]" "center">>
<<else>>
<<dialogue "" "Only remnants of what was once a pen remain." "description">>
<<addImage "img/events/deskc2.png">>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|BCoffice]]" "center">>
<</if>>
<<dialogue "" "You reach your hand toward the power button on the beige tower and press it cautiously. A faint hum breaks the silence as the computer comes to life. The screen flickers, projecting a pale blue glow that illuminates the dusty desk. " "description">>
<<addDialogue "Casey" "I can't believe this thing still works..." "talk">>
<<addImage "img/events/deskc2.png">>
<<horizontalStart>>
<<addDialogue "" "<div class='main-menu-btn' id='save-button'>Save/Load</div>">>
<<horizontalEnd>>
<<addDialoguePos "" "[[Go back|BCoffice]]" "center">>
<<set $Pc = true>>
<<script>>
// Ensure SugarCube save functionality
$(document).ready(function() {
// Direct save method for SugarCube
$('#save-button').on('click', function() {
// Explicitly use SugarCube's save method
try {
// Open saves dialog
UI.saves();
} catch (error) {
// Fallback error handling
console.error("Save functionality error:", error);
alert("Save function could not be executed.");
}
});
});
<</script>>
<<dialogue "" "You grab the medium batteries and put them in your backpack." "description">>
<<addDialogue "" "These will be useful." "thoughts">>
<<addImage "img/events/deskc.png">>
<<horizontalStart>>
<<addDialogue "" "[[Back|BCoffice]]">>
<<horizontalEnd>>
<<addItem "medium_battery" 2>>
<<set $bcbatteries = true>>
<<dialogue "" "As you open the door, you step into a small, oppressive room, its walls seeming to close in around you. Light is nearly absent; only a few dusty rays seep through the cracks of a boarded-up window, faintly illuminating the specks of dust dancing in the gloom." "description">>
<<addDialogue "" "Seriously? Another hellhole? I can’t take this anymore…" "thoughts">>
<<addDialogue "Casey" "What else could go wrong?" "talk">>
<<addDialogue "" "I’ve lost count of how many times I’ve said it couldn’t get worse… and it always does." "thoughts">>
<<addDialogue "" "A sharp crack echoes from the darkest corner of the room. You spin around, every muscle tense. From the shadows emerges a grotesque creature, roughly the size of an average man. Its muscular body is covered in a viscous, rough skin, a sickly brown that glistens wetly in the faint light." "description">>
<<addDialogue "Casey" "Damn it! What… what is that?" "talk">>
<<addDialogue "" "Is this real? Or have I finally lost my mind for good?" "thoughts">>
<<addDialogue "Casey" "Get back, you filthy abomination! Die!" "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Fight|Monster1]]">>
<<horizontalEnd>>
<<set $ME = 1>>
<<dialogue "" "As you open the door, you step into a small, oppressive room. The walls seem to close in around you. There's barely any light—just a few beams slipping through the cracks of a dust-covered window, illuminating the floating dust in the air." "description">>
<<addDialogue "" "Another room..." "thoughts">>
<<addDialogue "Casey" "Pff... And what’s that stench...?" "talk">>
<<addDialogue "" "A sharp sound breaks the silence—something metallic falls to the floor. You turn instinctively. From the darkest corner, two figures emerge. Their uniforms, filthy and worn, still bear the emblem of the psychiatric hospital." "description">>
<<addDialogue "" "Patients? No... looks like nurses..." "thoughts">>
<<addDialogue "" "One of them giggles softly, a sound tense and unnatural. The other stares at you, head tilted, calmly holding a rusted scalpel." "description">>
<<addDialogue "Nurse" "You shouldn't be here... visiting hours ended years ago. We take care of the ones who stay. Want us to take care of you, sweetheart?" "talk">>
<<addDialogue "Casey" "I'm not here to fight. I'm just looking for some answers..." "talk">>
<<addDialogue "Nurse" "Hehe... The answers are inside... but first, we have to open you up." "talk">>
<<addDialogue "" "They begin moving toward you, each step quicker than the last. Their eyes gleam with a mix of euphoria and madness." "description">>
<<addDialogue "Casey" "Alright then. If this is happening, let’s get it over with." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Fight|Nurses1]]">>
<<horizontalEnd>>
<<set $TNurses = 1>><<run startAdvancedBattle([
{
type: 'madNurse',
hp: 80,
distance: 15,
randomDistance: true,
speed: "3-8",
minMovement: 3,
maxMovement: 8,
damage: 10,
DamageIgnore: {
'pistol': 0.3,
'rifle': 0.2,
'shotgun': 0.0,
'melee': 0.4,
'incendiary': 0.1,
'dragon_breath': 0.0,
'tracer': 0.0,
'9mm': 0.5,
'.45': 0.4,
'slugs': 0.0
}
},
{
type: 'crazyNurse',
hp: 90,
distance: 20,
randomDistance: true,
speed: "3-8",
minMovement: 3,
maxMovement: 8,
sanityDamage: 8,
DamageIgnore: {
'pistol': 0.1,
'rifle': 0.1,
'shotgun': 0.1,
'melee': 0.1,
'incendiary': 0.1,
'dragon_breath': 0.1,
'tracer': 0.1,
'9mm': 0.1,
'.45': 0.1,
'slugs': 0.1
}
}
], 'VictoryPassage', true, 'CombatEscape', true)>>
<<if $CaseyCoat is true && $CaseyJacket isnot true>>
<<setAvatarDirect "caseycoatpistol.png">>
<<elseif $CaseyCoat isnot true && $CaseyJacket is true>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<else>>
<<setAvatarDirect "caseypistol.png">>
<</if>><<run startAdvancedBattle([
{
type: 'demonHunter',
hp: 110,
distance: 30,
randomDistance: true,
speed: "9-15",
minMovement: 9,
maxMovement: 15,
damage: 15,
DamageIgnore: {
'pistol': 0.8,
'rifle': 0.5,
'shotgun': 0.1,
'melee': 1,
'incendiary': 0.2,
'dragon_breath': 0.0,
'tracer': 0.4,
'9mm': 0.8,
'.45': 0.4,
'slugs': 0.4
}
},
], 'VictoryPassage', true, 'CombatEscape', false)>>
<<if $CaseyCoat is true && $CaseyJacket isnot true>>
<<setAvatarDirect "caseycoatpistol.png">>
<<elseif $CaseyCoat isnot true && $CaseyJacket is true>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<else>>
<<setAvatarDirect "caseypistol.png">>
<</if>><<dialogue "" "The room falls silent again. The monster lies motionless on the floor, its body shattered from the fight, with limbs twisted and disordered. The feeling of its presence slowly fades away, but the adrenaline still pumps through your veins, making the air feel thicker." "description">>
<<addDialogue "" "I don't know how much longer I can keep doing this..." "thoughts">>
<<addDialogue "Casey" "This is insane..." "talk">>
<<addDialogue "" "As you approach the fallen body, something metallic glimmers in the dim light of the room. Cautiously crouching down, you find a rusted key, rusted but still functional. It has a worn-out tag barely legible: Just for emergencies." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take the key|keyL]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|BedroomC]]" "center">>
<<set $PasaduciEnemy = true>>
<<set $ME = 2>><<dialogue "" "You take the key and tuck it into your backpack." "description">>
<<addDialogue "Casey" "Looks like I just earned myself an invitation…" "talk">>
<<addDialogue "" "Next to the key, you find a small bottle of antibiotics, the cap half unscrewed. There are still 2 capsules inside." "description">>
<<addDialogue "" "Hopefully, I won't need them..." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Take antibiotics|antibioticsL]]">>
<<horizontalEnd>>
<<addDialoguePos "" "[[Leave the antibiotics|BedroomC]]" "center">>
<<set $storageKey = true>>
<<script>>
// Special item example
const itemKey = 'shotgunKey';
const itemName = 'Key';
const itemDescription = 'A small key with text written on it: "Just for emergencies"';
const itemValue = 100;
const imagePath = `img/items/special/storagekey.png`;
window.itemDatabase[itemKey] = {
name: itemName,
description: itemDescription,
category: "special",
image: imagePath,
stackable: false,
maxStack: 1,
value: itemValue,
weight: 0.1,
isSellable: false,
};
window.ShopSystem.sellPrices[itemName] = {
buy: itemValue,
sell: Math.floor(itemValue * 0.75),
stock: 1,
img: imagePath
};
//Adding item ro inventory
const item = window.createItemInstance(itemKey, 1);
const result = window.InventorySystem.addItem(item);
if (result && window.ItemNotificationSystem) {
window.ItemNotificationSystem.show(itemKey, 1, `${itemName} acquired!`);
}
window.ShopSystem.populateSellItems();
<</script>><<dialogue "" "The room falls silent once more. The two nurses lie motionless on the floor, their bodies twisted in unnatural ways. Their laughter still lingers faintly in your mind, like a disturbing echo that refuses to fade." "description">>
<<addDialogue "" "I didn’t have a choice..." "thoughts">>
<<addDialogue "" "As you approach the bodies, something metallic catches your eye beneath the torn apron of one of them. You crouch down cautiously and pick it up — a small, rusted key, still intact. A worn-out tag dangles from it, barely legible: Just for emergencies." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take the key|keyL]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|BedroomC]]" "center">>
<<set $PasaduciEnemy = true>>
<<set $nurseEvent = 2>><<dialogue "" "You grab the antibiotics and put them in your backpack." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|BedroomC]]">>
<<horizontalEnd>>
<<script>>window.addItemFromDatabase('antibio', 3);<</script>>
<<if window.gameState.lanternOn>>
<<goto "BedroomDLight">>
<<else>>
<<dialogue "" "A suffocating stillness envelops you in absolute darkness. The air feels unnaturally cold against your skin, carrying a faint scent of antiseptic and something else—metallic and unsettling. Occasionally, you feel currents of air brushing past your face, suggesting openings or spaces to your sides." "description">>
<<horizontalStart>>
<<if $doorD isnot true>>
<<addDialogue "" "[[Left Door|doorD]]">>
<<else>>
<<addDialogue "" "[[Room 121|roomD]]">>
<</if>>
<<if $doorD3 isnot true>>
<<addDialogue "" "[[Right Door|doorD3]]">>
<<else>>
<<addDialogue "" "[[Room 122|roomD3]]">>
<</if>>
<<if $doorD2 isnot true>>
<<addDialogue "" "[[Left Door|doorD2]]">>
<<else>>
<<addDialogue "" "[[Room 123|roomD2]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Corridor - Bedrooms A|CellCorridorC]]">>
<<addDialogue "" "[[Corridor - Bedrooms C|CellCorridorC2]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<if $brokeSister isnot true>>
<<createAdvancedEvent "SanityStress" 0 "<" "passage" "brokeSister3" false "sanity">>
<</if>><<dialogue "" "The hallway is dark and foul-smelling, the air thick and suffocating, burning your throat. The beam of your flashlight illuminates the dirty walls, where stains of moisture and mold stretch out like scars. The doors to the rooms are shut, some with rusted hinges that creak with the slightest movement. The floor is covered in stagnant puddles that reflect the light from your flashlight, and the stench of decay and filth is unbearable." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Corridor - Bedrooms C|BedroomC]]">>
<<addDialogue "" "[[Corridor - Bedrooms D|BedroomD]]">>
<<horizontalEnd>>
<<if $ActiveBB is true>>
<<set $enemyChance = random(5)>>
<<if $enemyChance is 5>>
<<goto "BBenemyC">>
<</if>>
<</if>><<dialogue "" "You walk down the hallway. The darkness is so dense you can barely make out the decaying walls. Suddenly, you hear a sound that chills your blood: a wet, distorted babble—followed immediately by another, eerily similar. You stop, your breath quickening." "description">>
<<addDialogue "" "From a dark corner, two creatures emerge at once—grotesque, deformed figures covered in wounds, their limbs twisted and unnatural. They crawl side by side, as if driven by the same sick instinct. The creatures are coming for you." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Fight|bbfightc2]]">>
<<horizontalEnd>>
<<set $C2PeleaBB = 1>>
<<timed 1s>>
<<script>>
playSoundDirect('evilbb.mp3');
<</script>>
<</timed>>
<<timed 10s>>
<<script>>
playSoundDirect('evilbb.mp3');
<</script>>
<</timed>>
<<run startAdvancedBattle([
{
type: 'madNurse',
hp: 80,
distance: 20,
randomDistance: true,
speed: "3-8",
minMovement: 3,
maxMovement: 8,
damage: 10,
DamageIgnore: {
'pistol': 0.3,
'rifle': 0.2,
'shotgun': 0.0,
'melee': 0.4,
'incendiary': 0.1,
'dragon_breath': 0.0,
'tracer': 0.0,
'9mm': 0.5,
'.45': 0.4,
'slugs': 0.0
}
},
{
type: 'mawling',
hp: 50,
distance: 10,
randomDistance: true,
speed: "3-8",
minMovement: 3,
maxMovement: 8,
damage: 1,
sanityDamage: 6,
DamageIgnore: {
'pistol': 0.1,
'rifle': 0.1,
'shotgun': 0.1,
'melee': 0.1,
'incendiary': 0.1,
'dragon_breath': 0.1,
'tracer': 0.1,
'9mm': 0.1,
'.45': 0.1,
'slugs': 0.1
}
}
], 'VictoryPassage', true, 'CombatEscape', false)>>
<<if window.ClothingSystem.currentClothes === 'jacket'>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<elseif window.ClothingSystem.currentClothes === 'coat'>>
<<setAvatarDirect "caseycoatpistol.png">>
<<else>>
<<setAvatarDirect "caseycoatpistol.png">>
<</if>><<set $randomItem = random(3)>>
<<if $randomItem is 0>>
<<goto "CellCorridorC2">>
<<elseif $randomItem is 1>>
<<dialogue "" "After eliminating the monsters, you find a box of 15 rounds 9mm on the ground, left behind by them." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take ammo|balas]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|MainLobby]]" "center">>
<<else>>
<<dialogue "" "After eliminating the monsters, you find a rusty lockpick, lying among the rubble." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take lockpick|ganzua]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|MainLobby]]" "center">>
<</if>>
<<dialogue "" "You pick up the 24 rounds 9mm ammo and put it in your backpack." "description">>
<<addDialoguePos "" "[[Back|CellCorridorC2]]" "center">>
<<script>>window.addItemFromDatabase('pistol_ammo', 24);<</script>><<dialogue "" "You pick up the lockpicks and put it in your backpack." "description">>
<<addDialoguePos "" "[[Back|CellCorridorC2]]" "center">>
<<script>>
window.giveLockpicks(2)
<</script>><<dialogue "" "The door is open." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|roomD]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|BedroomD]]" "center">>
<<if window.gameState.lanternOn>>
<<goto "roomDLight">>
<<else>>
<<dialogue "" "You step inside, but everything is swallowed by complete darkness. The room feels still, almost frozen. You can't make out a single shape—only the sense that you're not alone in here." "description">>
<<horizontalStart>>
<<addDialoguePos "" "[[Exit|BedroomD]]" "center">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<set $doorD = true>>
<<dialogue "" "The door is open." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|roomD3]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|BedroomD]]" "center">>
<<if window.gameState.lanternOn>>
<<goto "roomDLight3">>
<<else>>
<<dialogue "" "The door creaks open, revealing… nothing. It's like stepping into a void. The air feels thick, and without a source of light, the space around you might as well not exist." "description">>
<<horizontalStart>>
<<addDialoguePos "" "[[Exit|BedroomD]]" "center">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<set $doorD3 = true>>
<<dialogue "" "The door is open." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|roomD2]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|BedroomD]]" "center">>
<<if window.gameState.lanternOn>>
<<goto "roomDLight2">>
<<else>>
<<dialogue "" "The moment you enter, your vision disappears into pitch black. No light, no detail—just silence and a vague impression of walls closing in. Whatever’s inside remains hidden." "description">>
<<horizontalStart>>
<<addDialoguePos "" "[[Exit|BedroomD]]" "center">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<set $doorD2 = true>>
<<dialogue "" "The narrow beam cuts through darkness to reveal a sterile hospital corridor with pale blue walls. Numbered patient rooms line both sides, their metal doors half-open or completely sealed. Dried bloodstains create dark patterns across the white tile floor, leading in and out of different doorways." "description">>
<<horizontalStart>>
<<if $doorD isnot true>>
<<addDialogue "" "[[Left Door|doorD]]">>
<<else>>
<<addDialogue "" "[[Room 121|roomD]]">>
<</if>>
<<if $doorD3 isnot true>>
<<addDialogue "" "[[Right Door|doorD3]]">>
<<else>>
<<addDialogue "" "[[Room 122|roomD3]]">>
<</if>>
<<if $doorD2 isnot true>>
<<addDialogue "" "[[Left Door|doorD2]]">>
<<else>>
<<addDialogue "" "[[Room 123|roomD2]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Corridor - Bedrooms A|CellCorridorC]]">>
<<addDialogue "" "[[Corridor - Bedrooms C|CellCorridorC2]]">>
<<horizontalEnd>><<dialogue "" "A metal bed is pushed up against the wall, rusted at the corners, with its mattress torn open and some of the stuffing exposed, as if someone had ripped it out. On the floor, there are fragments of ceramic—possibly from a broken cup or a medication bowl. A small piece of furniture lies crooked, one of its drawers missing and the others pried open, as if forced in desperation. Near the head of the bed, several shallow scratch marks run across the chipped paint in an irregular pattern that feels deeply unsettling." "description">>
<<addDialogue "Casey" "There's nothing here..." "talk">
<<horizontalStart>>
<<addDialoguePos "" "[[Exit|BedroomD]]" "center">>
<<horizontalEnd>>
<<dialogue "" "The wallpaper, once likely colorful, now hangs in peeling strips due to moisture. Scattered across the floor are plastic medication cups—some crushed, others covered in dust. A wheelchair stands motionless in one corner, its backrest torn." "description">>
<<horizontalStart>>
<<addDialoguePos "" "[[Exit|BedroomD]]" "center">>
<<horizontalEnd>>
<<dialogue "" "You step into a silent, shadowy room. The disheveled bed holds echoes of a troubled past, surrounded by dusty furniture and broken dolls lying still. The walls, covered in frantic scribbles, whisper secrets. An ajar door tempts you toward the unknown." "description">>
<<horizontalStart>>
<<addDialoguePos "" "[[Exit|BedroomD]]" "center">>
<<horizontalEnd>><<dialogue "" "The door is open." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Enter|ConsC]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|CellCorridorC]]" "center">>
<<if window.gameState.lanternOn>>
<<goto "ConsCLight">>
<<else>>
<<dialogue "" "Complete darkness engulfs you. You sense enclosed space around you, the air still and antiseptic. Something solid bumps against your leg as you move cautiously forward. The floor feels cold and smooth beneath your feet." "description">>
<<switch visited()>>
<<case 1>>
<<addDialogue "Casey" "Damn it! I can't see anything." "talk">>
<</switch>>
<<addDialoguePos "" "[[Exit|CellCorridorC]]" "center">>
<</if>>
<<set $ConsC = true>>
<<dialogue "" "A strange noise puts you on edge, a sound you’ve never heard before, like a distorted whimper. Something moves in the shadows." "description">>
<<addDialogue "Casey" "Shit! Who’s there?" "talk">>
<<addDialogue "" "That doesn’t sound human… What the hell is going on here?" "thoughts">>
<<addDialogue "" "Suddenly, a creature emerges, chilling you to the bone: a demonic baby, with wrinkled pink skin, small sunken eyes oozing malice, and a massive mouth filled with sharp teeth." "description">>
<<addDialogue "Casey" "What the fuck is that?! It’s… disgusting!" "talk">>
<<addDialogue "" "Its mere presence fills you with unease. The hallway seems to warp around it, and a shrill giggle pierces your ears." "description">>
<<addDialogue "" "This can’t be real… This is a nightmare, I must be dreaming." "thoughts">>
<<horizontalStart>>
<<addDialogue "" "[[Fight|bbfight]]">>
<<horizontalEnd>>
<<set $bbfight = 1>>
<<set $bbenemy = true>>
<<timed 1s>>
<<script>>
playSoundDirect('evilbb.mp3');
<</script>>
<</timed>>
<<timed 10s>>
<<script>>
playSoundDirect('evilbb.mp3');
<</script>>
<</timed>><<dialogue "" "A beam of light cuts through the darkness as you move forward, illuminating the hallway with a shaky glow. The light reveals dark stains and marks on the walls, some scrawled into frantic words you can’t quite make out. The wet floor reflects the eerie glow, and a faint chill clings to the space." "description">>
<<horizontalStart>>
<<if $ConsC isnot true>>
<<addDialogue "" "[[Right Door|ConsdoorC]]">>
<<else>>
<<addDialogue "" "[[Examination room|ConsC]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Corridor - Bedrooms A|BedroomA]]">>
<<addDialogue "" "[[Corridor - Bedrooms D|BedroomD]]">>
<<horizontalEnd>>
<<if $bbenemy isnot true>>
<<goto "bbenemy">>
<</if>>
<<if $PageC isnot true>>
<<dialogue "" "The light reveals a small examination room. A rusted medical examination table dominates the center, its leather straps hanging loosely from the sides. Against one wall stands a metal cabinet with several drawers partially open, medical instruments gleaming inside. A yellowed patient chart lies abandoned on a small desk in the corner, its pages covered with hastily scribbled notes." "description">>
<<else>>
<<dialogue "" "The light reveals a small examination room. In the center stands a rusted medical table, its leather straps hanging loosely from the sides. Against one of the walls rises a metal cabinet with several drawers left ajar, and a desk in the corner." "description">>
<</if>>
<<horizontalStart>>
<<if $knifeC isnot true>>
<<addDialogue "" "[[Check metal cabinet|metalcabinetC]]">>
<<else>>
<<addDialogue "" "[[Check metal cabinet|metalcabinetC2]]">>
<</if>>
<<addDialogue "" "[[Check desk|checkdeskC]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Exit|CellCorridorC]]" "center">> <<run startAdvancedBattle([
{
type: 'mawling',
hp: 50,
distance: 20,
randomDistance: true,
speed: "3-8",
minMovement: 3,
maxMovement: 8,
damage: 1,
sanityDamage: 6,
DamageIgnore: {
'pistol': 0.1,
'rifle': 0.1,
'shotgun': 0.1,
'melee': 0.1,
'incendiary': 0.1,
'dragon_breath': 0.1,
'tracer': 0.1,
'9mm': 0.1,
'.45': 0.1,
'slugs': 0.1
}
}
], 'VictoryPassage', true, 'CombatEscape', false)>>
<<if window.ClothingSystem.currentClothes === 'jacket'>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<elseif window.ClothingSystem.currentClothes === 'coat'>>
<<setAvatarDirect "caseycoatpistol.png">>
<<else>>
<<setAvatarDirect "caseycoatpistol.png">>
<</if>><<set $RandomDistance = random(10)>>
<<if $RandomDistance gte 0>>
<<run startAdvancedBattle([
{
type: 'mawling',
hp: 50,
distance: 20,
randomDistance: true,
speed: "3-8",
minMovement: 3,
maxMovement: 8,
damage: 1,
sanityDamage: 6,
DamageIgnore: {
'pistol': 0.1,
'rifle': 0.1,
'shotgun': 0.1,
'melee': 0.1,
'incendiary': 0.1,
'dragon_breath': 0.1,
'tracer': 0.1,
'9mm': 0.1,
'.45': 0.1,
'slugs': 0.1
}
},
], 'VictoryPassage', true, 'CombatEscape', false)>>
<<elseif $RandomDistance gt 4>>
<<run startAdvancedBattle([
{
type: 'mawlingStrong',
hp: 70,
distance: 20,
randomDistance: true,
speed: "3-8",
minMovement: 3,
maxMovement: 8,
damage: 2,
sanityDamage: 8,
DamageIgnore: {
'pistol': 0.2,
'rifle': 0.2,
'shotgun': 0.2,
'melee': 0.2,
'incendiary': 0.2,
'dragon_breath': 0.2,
'tracer': 0.2,
'9mm': 0.2,
'.45': 0.2,
'slugs': 0.2
}
}
], 'VictoryPassage', true, 'CombatEscape', false)>>
<<elseif $RandomDistance gt 8>>
<<run startAdvancedBattle([
{
type: 'mawling',
hp: 50,
distance: 20,
randomDistance: true,
speed: "3-8",
minMovement: 3,
maxMovement: 8,
damage: 1,
sanityDamage: 6,
DamageIgnore: {
'pistol': 0.1,
'rifle': 0.1,
'shotgun': 0.1,
'melee': 0.1,
'incendiary': 0.1,
'dragon_breath': 0.1,
'tracer': 0.1,
'9mm': 0.1,
'.45': 0.1,
'slugs': 0.1
}
}
], 'VictoryPassage', true, 'CombatEscape', false)>>
<</if>>
<<if window.ClothingSystem.currentClothes === 'jacket'>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<elseif window.ClothingSystem.currentClothes === 'coat'>>
<<setAvatarDirect "caseycoatpistol.png">>
<<else>>
<<setAvatarDirect "caseycoatpistol.png">>
<</if>><<dialogue "" "The final shot rings out, and the demonic infant collapses, its crimson glow fading into ash. The nursery falls silent, the oppressive weight lifting from your chest. Reality snaps back into place—colors seem sharper, the air lighter. You stare at the scorched remains, a faint unease lingering. It’s gone, but the memory of its twisted giggle claws at your mind. Whatever it was, it’s no longer a threat. You holster your weapon and walk away, the nursery’s shadows retreating behind you." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take calming pills|Tpc]]">>
<<addDialogue "" "[[Don't take calming pills|CellCorridorC]]">>
<<horizontalEnd>>
<<set $ActiveBB = true>>
<<dialogue "" "You put the pills in your backpack." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|CellCorridorC]]">>
<<horizontalEnd>>
<<set $randompills = random(10)>>
<<if $randompills lte 5>>
<<script>>window.addItemFromDatabase('pills', 2);<</script>>
<</if>>>
<<if $randompills gt 6>>
<<script>>window.addItemFromDatabase('pills', 4);<</script>>
<</if>>
<<dialogue "" "You approach the metal cabinet. As you open one of the drawers, the screech of rusted metal echoes through the room. Inside, scattered among the decaying contents, lie several rusted surgical tools. Amid the corroded instruments, you spot a knife that appears to be in relatively good condition, its blade still sharp and mostly untouched by time." "description">>
<<addImage "img/events/cabinetc.png">>
<<horizontalStart>>
<<addDialogue "" "[[Take knife|knifeC]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|ConsC]]" "center">>
<<dialogue "" "You approach the metal cabinet. As you pull open one of the drawers, the screech of rusted metal echoes through the room. Inside, you find scattered surgical tools, all corroded and broken. Nothing here seems useful." "description">>
<<addImage "img/events/cabinetc.png">>
<<addDialoguePos "" "[[Back|ConsC]]" "center">>
<<if $PageC isnot true>>
<<dialogue "" "You approach the desk, covered in dust and dry white stains. Among crumpled papers, a yellowed sheet stands out on the surface. It's covered in shaky scribbles, as if someone had written it during a crisis or in a moment of desperation." "description">>
<<else>>
<<dialogue "" "The desk is made of old metal, with chipped varnish and burn marks in one corner. It's covered with a thick layer of dust, and dry white stains are scattered across the surface. The drawers are closed, though one seems stuck, as if someone had tried to force it open." "description">>
<</if>>
<<addImage "img/events/deskc.png">>
<<horizontalStart>>
<<addDialogue "" "[[Open the drawer|cajonC]]">>
<<if $PageC isnot true>>
<<addDialogue "" "[[Take the papers|PageC]]">>
<</if>>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|ConsC]]" "center">>
<<dialogue "" "You grab the rusted knife and you put it in your backpack." "description">>
<<addDialogue "Casey" "Well... Better than nothing." "talk">>>
<<addImage "img/events/cabinetc.png">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|ConsC]]">>
<<horizontalEnd>>
<<set $knifeC = true>>
<<script>>
const itemKey = 'rustedknife';
const itemName = 'Rusted Knife';
const itemDescription = 'Its a wide-bladed kitchen knife, clearly forgotten long ago. The wooden handle is cracked, damp to the touch.';
const itemValue = 90;
const weaponDamage = 14;
const imagePath = 'img/items/weapons/rustedknife.png';
// Add to Item Database
window.itemDatabase[itemKey] = {
name: itemName,
description: itemDescription,
category: "tool", // Melee weapons use "tool" category
type: "weapon", // Must be "weapon"
weaponType: "melee", // Critical: defines as melee weapon
damage: weaponDamage, // Base damage
image: imagePath,
stackable: false,
maxStack: 1,
value: itemValue,
weight: 0.5, // Lighter than crowbar
isSellable: true
};
// Add to Shop System
window.ShopSystem.sellPrices[itemName] = {
buy: itemValue,
sell: Math.floor(itemValue * 0.75),
stock: 3,
img: imagePath
};
// Add to Inventory with Notification
const item = window.createItemInstance(itemKey, 1);
const result = window.InventorySystem.addItem(item);
if (result && window.ItemNotificationSystem) {
window.ItemNotificationSystem.show(itemKey, 1, `${itemName} acquired!`);
}
// Refresh Shop UI
window.ShopSystem.populateSellItems();
<</script>>
<<if $batteriesC isnot true>>
<<dialogue "" "You rummage through the drawer, moving aside dust and ash. All you find are broken objects in poor condition. However, at the back, in a sealed package, you find two cheap batteries in perfect condition. They seem brand new, ready to be used." "description">>
<<addImage "img/events/deskc.png">>
<<horizontalStart>>
<<addDialogue "" "[[Take batteries|cajonbatteriesC]]">>
<<horizontalEnd>>
<<else>>
<<dialogue "" "You rummage through the drawer, shifting the dust and ash. All you find are broken objects in poor condition. Nothing seems useful." "description">>
<<addImage "img/events/deskc.png">>
<</if>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|ConsC]]" "center">>
<<dialogue "" "You grab the page and begin to read." "description">>
<<addImageV "img/documents/karlsen_note_day1.png">>
<<spacing "20px">>
<<addDialoguePos "" "[[Continue|ConsC]]" "center">>
<<script>>
window.addDocumentWithNotification(
"karlsen_note_day1",
"Diary Note",
"Torn and stained note titled 'Day 1 of the incubation protocol' by Dr. Karlsen.",
"",
"close_photo",
"📋",
{
imagePath: "img/documents/karlsen_note_day1.png",
location: "Found inside a room at the Charles Francis Psychiatric Hospital",
photographer: "Doctor Karlsen",
frontDescription: "A torn note from Dr. Karlsen's diary. It appears to be a journal entry or research log related to the experiments conducted within the hospital."
}
);
<</script>>
<<script>>
playSoundDirect('page.mp3');
<</script>>
<<set $PageC = true>>
<<dialogue "" "You pick up the batteries." "description">>
<<addImage "img/events/deskc.png">>
<<addDialoguePos "" "[[Back|ConsC]]" "center">>
<<addItem "battery" 2>>
<<dialogue "" "The door is open." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Open|RedE]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|CellCorridorD]]" "center">>
<<if window.gameState.lanternOn>>
<<goto "RedELight">>
<<else>>
<<dialogue "" "You step into a vast room consumed by a suffocating darkness. The air feels heavier here, as if the shadows themselves are pressing in. Without your flashlight, the world vanishes — nothing exists beyond the void in front of you." "description">>
<<addDialoguePos "" "[[Exit|CellCorridorD]]" "center">>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<set $RedE = true>>
<<dialogue "" "The patient lounge is still, frozen in time. Pale moonlight filters through a cracked window, casting long shadows across worn-out armchairs and faded wallpaper. Dust floats lazily in the air, stirred only by your presence. An old television set sits in the corner, its curved screen reflecting the moonlight in a dull, ghostly shimmer. The furniture is arranged in a loose circle, as if the room once hosted quiet conversations or forgotten group sessions. Now, only silence remains, heavy and undisturbed." "description">>
<<horizontalStart>>
<<if $StorageDoor isnot true>>
<<addDialogue "" "[[Check storage door|storagedoor2]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<if $StorageDoor2 is true>>
<<addDialogue "" "[[Storage room|Storage2]]">>
<</if>>
<<addDialogue "" "[[Corridor - Bedrooms A|CellCorridorD]]">>
<<addDialogue "" "[[Go to playroom|LRcorridor]]">>
<<horizontalEnd>>
<<script>>
window.setLighting(80);
<</script>><<dialogue "" "The hallway is narrow, swallowed by thick darkness. Only the beam of your flashlight cuts through the shadows, revealing fragments of peeling walls that look ready to collapse. The cracked linoleum crunches beneath your boots. On either side, rusted metal doors stand at uneven intervals, like forgotten sentinels." "description">>
<<switch visited()>>
<<case 1>>
<<addDialogue "Casey" "Perfect spot to vanish without a trace... just great." "talk">>
<</switch>>
<<horizontalStart>>
<<if $RedE isnot true>>
<<addDialogue "" "[[Left Door|RedEdoor]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<if $RedE is true>>
<<addDialogue "" "[[Red elevators|RedE]]">>
<</if>>
<<addDialogue "" "[[Corridor - Bedrooms A|BedroomA]]">>
<<addDialogue "" "[[Livingroom]]">>
<<horizontalEnd>>
<<dialogue "" "You step into a vast room swallowed by darkness. Your flashlight cuts through the shadows, revealing cracked walls and broken tiles scattered across the floor. At the far end, the beam lands on a pair of red elevator doors. Despite the decayed surroundings, the doors look almost pristine — no dents, no rust, almost new. But there's no power. No lights. Everything is still, as if waiting." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Check elevators|rede]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Exit|CellCorridorD]]" "center">>
<<dialogue "" "You stop in front of the red elevators, their metal doors gleaming under your flashlight, pristine despite the 15 years of abandonment in the psychiatric hospital. The vivid red stands out in the gloom. You run your fingers over the metal, smooth, no trace of rust. The panel buttons are dark, lifeless." "description">>
<<switch visited()>>
<<case 1>>
<<addDialogue "Casey" "As expected..." "talk">>
<<addDialogue "" "You scan the frame, looking for anything out of place: a wire, a mark. Nothing." "description">>
<<addDialogue "" "This doesn’t add up. Fifteen years, and they look brand new. Someone’s been here, but without power, what’s the point?" "thoughts">>
<<addDialogue "Casey" "Come on, Casey, think. No electricity, these things aren’t moving. But I’m not buying they’re just for show. There’s gotta be a maintenance room with a generator somewhere in this building." "talk">>
<</switch>>
<<horizontalStart>>
<<if $RedeInspect isnot true>>
<<addDialogue "" "[[Inspect elevators|redecheck]]">>
<</if>>
<<addDialogue "" "[[Call elevators|redecall]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|RedE]]" "center">>
<<dialogue "" "You crouch, shining your light on the floor. The linoleum is cracked, but the dust in front of the doors is thinner, as if someone’s been through recently. You stand and press the open button. The buttons are cold, unworn. Frowning, you inspect the panel closer, noticing a small slot with a fresh scratch, like something was inserted." "description">>
<<addDialogue "" "Someone used this, and not long ago. If I want this elevator to work its magic, I need to restore power. The maintenance room’s gotta be close, probably in the basement or some forgotten wing." "thoughts">>
<<addDialogue "Casey" "Alright, Red, you’re not talking yet. But if I find the main switch, you’ll sing. Nobody keeps this so perfect for no reason." "talk">>
<<addDialogue "" "You sweep the lobby with your flashlight, searching for signs of a hallway or door leading to the maintenance room, or any clue to guide you there. Nothing stands out—the remaining signs and wall markers are too worn to read." "description">>
<<addDialogue "" "The maintenance room is my next move. There’s gotta be a building map or a sign somewhere." "thoughts">>
<<addDialogue "Casey" "Time to find the heart of this place. If there’s a generator, I’ll track it down. And then, Home..."talk">>
<<addDialogue "" "He and I are gonna have a serious talk." "thoughts">>
<<addDialoguePos "" "[[Back|RedE]]" "center">>
<<set $RedeInspect = true>>
<<if $PowerRestoreQuest isnot true>>
<<set $PowerRestoreQuest = true>>
<<script>>
addQuestWithStages(
"Power Restoration",
"The hospital is shrouded in complete darkness. Your first priority is to locate the maintenance room, though restoring power won't be a simple task—you'll need to figure out what went wrong (No more content for now).",
[
"Find the maintenance room. There might be tools or clues inside.",
"Find the first fuse. It could be hidden somewhere in the lower levels.",
"Find the second fuse. Check staff-only areas or locked storage rooms.",
"Insert the fuses and restore the power from the generator room."
],
"📋",
"main",
"restore_power", // Custom ID
"img/quest.png" // Quest image
);
// Add stage images so completion notifications show the quest image
if (window.questSystem && window.questSystem.quests["restore_power"]) {
window.questSystem.quests["restore_power"].stageImages = [
"img/quest.png", // Stage 1
"img/quest.png", // Stage 2
"img/quest.png", // Stage 3
"img/quest.png" // Stage 4
];
}
State.variables.powerQuestId = "restore_power";
<</script>>
<</if>><<dialogue "" "You stand before the red elevators, their glossy doors catching the faint glow of your flashlight. With a steady hand, you reach for the call button, its surface cold and smooth under your thumb. You press it, half-expecting nothing, but a faint click echoes in the silent lobby. No lights flicker, no hum of machinery follows—just an oppressive quiel." "description">>
<<addDialogue "" "No power, no surprise. But that click felt too clean, too deliberate. Someone’s kept this thing ready, even if it’s not moving now." "thoughts">>
<<addDialogue "Casey" "Come on, reddie, give me something. You’re hiding more than you let on, aren’t you?" "talk">>
<<addDialogue "" "The elevator doesn't move." "description">>
<<addDialoguePos "" "[[Back|RedE]]" "center">>
<<dialogue "" "The door is open." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Open|Storage2]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Livingroom]]" "center">>
<<dialogue "" "The storage room is narrow and cluttered. The shelves, old and bent under the weight, leave little room to move. Stacked cardboard boxes block part of the way, and some have collapsed, spilling their contents onto the floor. Cobwebs and dust have gathered in the corners. Against one of the walls, there is a small locker with a rusty padlock, its surface scratched and worn from years of neglect." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Check the small locker|smalllocker]]">>
<<addDialogue "" "[[Check the boxes|boxes2]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Exit|Livingroom]]" "center">>
<<set $StorageDoor2 = true>>
<<if window.gameState.lanternOn>>
<<goto "LRcorridorLight">>
<<else>>
<<dialogue "" "The hallway leading from the lounge to the recreational room is swallowed in complete darkness. The air is thick, carrying the stale scent of mold, dust, and old disinfectant." "description">>>
<<horizontalStart>>
<<if $St3 isnot true>>
<<addDialogue "" "[[Left Door|storagedoor3]]">>
<<else>>
<<addDialogue "" "[[Storage|Storage3]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Livingroom]]">>
<<addDialogue "" "[[Playroom]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<script>>
window.setLighting(50);
<</script>><<if $SmallTaquillaOpen isnot true>>
<<dialogue "" "As you approach the small locker, you notice its surface is covered with scratches and rust stains. The lock securing it is in good condition, though it looks quite old. The metal shines slightly despite its age, and the lock appears firm and sturdy, with no signs of wear." "description">>
<<addImage "img/events/smalltaquilla.png">>
<<lockBreak "average" "smalllocker2" "Storage2" true>>
<<else>>
<<dialogue "" "The locker door is open, revealing its empty interior." "description">>
<<addImage "img/events/smalltaquillaopen.png">>
<<horizontalStart>>
<<addDialogue "" "[[Check locker|smalllocker2]]">>
<<horizontalEnd>>
<</if>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Storage2]]" "center">>
<<if $pilas2 isnot true>>
<<dialogue "" "You search through the boxes and find three batteries. They're a bit dusty, but still sealed in their packaging. They could come in handy later." "description">>
<<switch visited()>>
<<case 1>>
<<addDialogue "Casey" "Well... it's not much, but at least I won't be left in the dark for too long." "talk">>
<</switch>>
<<addImage "img/events/boxes1.png">>
<<horizontalStart>>
<<addDialogue "" "[[Take batteries|pilas2]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Storage2]]" "center">>
<<else>>
<<goto "nopilas2">>
<</if>>
<<dialogue "" "You put away the batteries." "description">>
<<addImage "img/events/boxes1.png">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|Storage2]]">>
<<horizontalEnd>>
<<addItem "battery" 3>>
<<set $pilas2 = true>>
<<dialogue "" "You search through the boxes, but there’s nothing left. The shelves are empty, and the floor is bare. It seems everything has already been taken or vanished." "description">>
<<switch visited()>>
<<case 1>>
<<addDialogue "Casey" "Looks like not everything grows back or reappears. Weird, huh?" "talk">>
<</switch>>
<<addImage "img/events/boxes1.png">>
<<addDialoguePos "" "[[Back|Storage2]]" "center">>
<<if $smallLockerbandages isnot true && $smallLockerCard isnot true>>
<<dialogue "" "Inside the locker, you find a small pack of bandages and a Level A magnetic keycard hanging from a hook." "description">>
<<elseif $smallLockerbandages is true && $smallLockerCard isnot true>>
<<dialogue "" "A Level A magnetic keycard hangs from a hook inside the locker." "description">>
<<elseif $smallLockerbandages isnot true && $smallLockerCard is true>>
<<dialogue "" "A small pack of bandages rests inside the locker." "description">>
<<else>>
<<dialogue "" "The locker is empty." "description">>
<</if>>
<<addImage "img/events/smalltaquillaopen.png">>
<<if $smallLockerbandages isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Take bandages|taquillaVendas]]">>
<<horizontalEnd>>
<</if>>
<<if $smallLockerCard isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Take level A magnetic card|taquillaCard]]">>
<<horizontalEnd>>
<</if>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Storage2]]" "center">>
<<set $SmallTaquillaOpen = true>><<dialogue "" "The door is locked." "description">>
<<horizontalStart>>
<<lockBreak "average" "openstorage3" "LRcorridor" true>>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|LRcorridor]]" "center">>
<<if window.gameState.lanternOn>>
<<goto "Storage3Light">>
<<else>>
<<dialogue "" "The room is enveloped in total darkness. The space feels vast, but the lack of light causes everything to vanish into the shadows. There's no way to make out the outlines of objects, only a sense of emptiness, as if everything is waiting." "description">>
<<addDialoguePos "" "[[Back|LRcorridor]]" "center">>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<if window.gameState.lanternOn>>
<<goto "PlayroomLight">>
<<else>>
<<dialogue "" "It is impossible to distinguish anything. Everything is shrouded in absolute darkness, as if the eyes had been permanently closed and the sense of sight had ceased to exist. Every attempt to focus on something, to find any hint of shape, color, or movement, fades into nothingness." "description">>
<<if $playdoor isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Check door|playdoor]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<if $playdoor is true>>
<<addDialogue "" "[[Sex dungeon|Sexdungeon]]">>
<</if>>
<<addDialogue "" "[[Go to livingroom|LRcorridor]]">>
<<addDialogue "" "[[Go to Grand Hall|LRcorridor]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<dialogue "" "The hallway leading from the lounge to the recreational room is swallowed in complete darkness. Only the beam of your flashlight reveals cracked walls and faded posters with unnaturally cheerful cartoons. Beneath your boots, the linoleum creaks—sticky in places, as if it had soaked up more stories than anyone would care to hear. The doors lining the corridor are shut tight, some missing handles, and a row of rusted benches runs along one wall, waiting for patients who never returned. The air is thick, carrying the stale scent of mold, dust, and old disinfectant." "description">>
<<switch visited()>>
<<case 1>>
<<addDialogue "Casey" " If this is the road to joy... I'd rather turn back." "talk">>
<</switch>>
<<horizontalStart>>
<<if $St3 isnot true>>
<<addDialogue "" "[[Left Door|storagedoor3]]">>
<<else>>
<<addDialogue "" "[[Storage|Storage3]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Livingroom]]">>
<<addDialogue "" "[[Playroom]]">>
<<horizontalEnd>>
<<dialogue "" "The playroom is spacious. The walls, once in pastel tones, have now lost their original color, turning into a sickly hue that distorts the vision. On them hang some drawings that survived the passage of time, looking childish, yet their lines are irregular, trembling, and the smiles drawn are grotesque. The floor is covered with broken and scattered toys: dolls without eyes, puzzle pieces that no longer fit, letter dice stained from use. In the center of the room, a small table, accompanied by disproportionate chairs, seems to have been abandoned in the middle of an interrupted activity, as if the room had been trapped in time." "description">>
<<if $playdoor isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Check door|playdoor]]">>
<</if>>
<<horizontalEnd>>
<<horizontalStart>>
<<if $playdoor is true>>
<<addDialogue "" "[[Sex dungeon|Sexdungeon]]">>
<</if>>
<<addDialogue "" "[[Go to livingroom|LRcorridor]]">>
<<addDialogue "" "[[Go to Grand Hall|LRcorridor]]">>
<<horizontalEnd>>
<<dialogue "" "You successfully pick the lock, and the door opens." "description">>
<div class="links">
<<horizontalStart>>
<<addDialogue "" "[[Enter|Storage3]]</th>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|LRcorridor]]" "center">>
<<set $St3 = true>>
<<dialogue "" "The flashlight reveals shelves piled with boxes in disarray, some open, others about to fall. Dust floats in the air, visible in the beam of light, while old sacks are piled in a corner. The walls, covered in stains and moisture, seem ready to crumble. A rusty cart lies forgotten in the center, while some shelves sag under the weight of their contents. Darkness still lingers in the farthest corners." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Check crates|crates3L]]">>
<<addDialogue "" "[[Check cart|cart3L]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|LRcorridor]]" "center">>
<<if $l3vendas isnot true>>
<<dialogue "" "Upon closer inspection, you find some open, while others remain closed, their contents unknown. In one box filled with old rags and papers, you discover a <span style="color: #22b22e;">package of bandages</span>." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take bandages|vendas3L]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Storage3]]" "center">>
<<else>>
<<dialogue "" "The crates are empty." "description">>
<<addDialoguePos "" "[[Back|Storage3]]" "center">>
<</if>>
<<dialogue "" "Inside the cart, among pieces of metal and dust, you find a small package of pills. Next to it, there's a glass jar with a cloudy liquid, which could be some sort of solution or remedy. At the bottom, hidden beneath a torn cloth, you find an old notebook. One page is torn but still legible, while the rest is too faded and damaged to read." "description">>
<<switch visited()>>
<<case 1>>
<<dialogue "" "The cart is rusty and covered in dust. Its wheels are stuck, and inside are metal scraps, torn fabric, and forgotten objects. The worn paint is barely visible under the accumulated dirt." "description">>
<</switch>>
<<horizontalStart>>
<<if $pills3L isnot true>>
<<addDialogue "" "[[Take pills|pills3L]]">>
<</if>>
<<if $liquid isnot true>>
<<addDialogue "" "[[Take cloudy liquid|liquid3L]]">>
<</if>>
<<if $libro isnot true>>
<<addDialogue "" "[[Take page|libro3L]]">>
<</if>>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Storage3]]" "center">>
<<dialogue "" "You take the pills and, without giving it much thought, stash them in your backpack." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Back|cart3L]]">>
<<horizontalEnd>>
<<script>>window.addItemFromDatabase('pills', 5);<</script>>
<<set $pills3L = true>>
<<dialogue "" "You hold the jar up to your flashlight. The liquid inside is thick, a murky brown that looks like it’s been rotting for years." "description">>
<<addDialogue "Casey" "No idea what the hell this is… but it sure doesn’t smell like medicine." "talk">>
<<addDialogue "" "Its coagulated texture unsettles you. But you stash it in your backpack without giving it another thought." "description">>
<<addDialoguePos "" "[[Back|cart3L]]" "center">>
<<set $liquid = true>>
<<script>>
const itemKey = 'cumBottle';
const itemName = 'Bottle of white lquid';
const itemDescription = 'A bottle containing some unknown liquid.';
const itemValue = 50;
const imagePath = `img/items/special/cbottle.png`;
window.itemDatabase[itemKey] = {
name: itemName,
description: itemDescription,
category: "special",
image: imagePath,
stackable: true,
maxStack: 1,
value: itemValue,
weight: 0.5,
isSellable: true,
};
window.ShopSystem.sellPrices[itemName] = {
buy: itemValue,
sell: Math.floor(itemValue * 0.75),
stock: 1,
img: imagePath
};
//Adding item ro inventory
const item = window.createItemInstance(itemKey, 1);
const result = window.InventorySystem.addItem(item);
if (result && window.ItemNotificationSystem) {
window.ItemNotificationSystem.show(itemKey, 1, `${itemName} acquired!`);
}
window.ShopSystem.populateSellItems();
<</script>><<dialogue "" "You grab the page and begin to read." "description">>
<div id="note"></div>
<<addImageV "img/documents/karlsen_note_day10.png">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|cart3L]]">>
<<horizontalEnd>>
<<script>>
window.addDocumentWithNotification(
"karlsen_note_day10",
"Diary Note",
"Torn and stained note titled 'Day 10 of the incubation protocol' by Dr. Karlsen.",
"",
"close_photo",
"📋",
{
imagePath: "img/documents/karlsen_note_day10.png",
location: "Found inside a room at the Charles Francis Psychiatric Hospital",
photographer: "Dr. Karlsen",
frontDescription: `A torn note from Dr. Karlsen's diary. It appears to be a journal entry or research log related to the experiments conducted within the hospital.`
}
);
<</script>>
<<script>>
playSoundDirect('page.mp3');
<</script>>
<<set $libro = true>>
<<dialogue "" "You grab a pack of bandages and slip it into your backpack." "description">>
<<addDialoguePos "" "[[Back|Storage3]]" "center">>
<<script>>window.addItemFromDatabase('bandages', 3);<</script>>
<<set $l3vendas = true>>
<<dialogue "" "You approach the edge of the hole, noticing that its size is just right for you to descend with ease. The cold air rises from below, damp and foul-smelling." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Descend|Descend]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Pasaduci]]" "center">><<dialogue "" "The room is dimly lit, with cracked walls. The ceiling shows signs of decay, with loose panels and hanging cables. In the center of the floor, the hole leading to the basement remains." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Inspect Hole|Bujero3]]">>
<<horizontalEnd>>
<</if>>
<<spacing "20px">>
<<addDialoguePos "" "[[Exit|BedroomC]]" "center">>
<<set $Pasaduci = true>>
<<if $bujero isnot true>>
<<goto "Bujero">>
<</if>>
<<dialogue "" "You hit the ground hard. The fall knocks the breath out of you, but nothing seems broken. As you slowly get up, the dim glint of fractured reflections surrounds you. Dozens—no, hundreds—of mirrors cover the walls, cracked and stained, stretching the room into a disorienting labyrinth of yourself. The door ahead is slightly ajar, the only thing in here that isn't watching you." "description">>
<<addDialogue "Casey" " What the hell is a room like this doing in a psychiatric hospital? Who would build such a twisted place?" "talk">>
<<addDialogue "" "This doesn’t make any sense... but maybe that’s exactly the point." "thoughts">>
<<addDialogue "Casey" " I have to keep moving..." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|Mirrors]]">>
<<horizontalEnd>>
<<script>>
window.HealthSanitySystem.removeHealth(10)
<</script>>
<<set $Fase1 = true>><<dialogue "" "You slide the flashlight across the room, taking slow steps and keeping a careful eye. The walls are covered in cracks and dampness; the wallpaper hangs like old skin. An old, rusted gurney lies in the center of the room, its legs twisted and its padding torn. To one side, a medical monitor, covered in dust, briefly reflects the beam of light before returning your own distorted reflection. The beam slides toward the floor. Broken tiles, dry stains, loose cables. And then you see it. In the farthest corner, the linoleum sinks inward. A crack... no, a hole. Wide, uneven, and deep. As if something had torn through the floor from below." "description">>
<<addDialogue "" "What the hell did this?" "thoughts">>
<<addDialogue "Casey" "Great... nothing suspicious about a hole leading straight to hell." "talk">>
<<addDialogue "" "You approach cautiously, crouching by the edge as you direct the flashlight into the abyss. The light moves slowly, barely revealing twisted, rusted pipes and fragments of fallen concrete lost in the darkness. From below rises a cold, dense draft, carrying the penetrating smell of mold and earth, and something else you can’t quite identify." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Inspect Hole|Bujero2]]">>
<<horizontalEnd>>
<<dialogue "" "You crouch closer to the edge. The floor creaks, as if everything is about to give way under your weight. Looking more closely, you can see that the edge of the hole is worn, likely from the passage of time. The flashlight's beam illuminates the emptiness below, revealing the basement floor. Through the darkness, you can make out some cracked concrete slabs, as if something or someone caused the damage. The fall doesn’t seem too deep, but the dense, cold air rising from below makes you think this is not a place you want to explore without a good reason." "description">>
<<addDialogue "Casey" " How... what did this?" "talk">>
<<addDialogue "" " It doesn’t make sense... probably the moisture and the passage of time... I don’t know if I’ll find an exit, or if I’m walking straight into something much worse, but I don’t have many options." "description">>
<<addDialogue "Casey" " Well, it’s not like I have a map of this place... If this leads to the basement, it might be the only way forward." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Descend|Descend]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Pasaduci]]" "center">>
<<set $bujero = true>>
<<if window.gameState.lanternOn>>
<<goto "MirrorsLight">>
<<else>>
<<dialogue "" "The darkness is thick. Just enough to reveal the strange: dozens, maybe hundreds of mirrors cover the walls. Many are cracked, others completely shattered. They reflect you from every angle... staring back at you a thousand times." "description">>
<<if $sanity > 60>>
<<addDialogue "" "You only see yourself, over and over. Your silhouette repeats on every surface. You are alone." "description">>
<<addDialogue "Casey" "This was... a mirror therapy room? What kind of treatment did they do here...?" "talk">>
<<elseif $sanity >= 30 and $sanity <= 60>>
<<addDialogue "" "Some mirrors show things that aren’t in the room. In one, you see a woman standing with her back turned, still. She’s watching you. You blink… and she’s gone. Your breathing quickens. The air feels heavy." "description">>
<<elseif $sanity < 30>>
<<addDialogue "" "Your reflections don’t move like you do. One of your copies smiles cruelly... but you don’t. A soft crack makes you look closer: a crack snakes slowly across the glass in front of you. But you didn’t touch it." "description">>
<<addDialogue "" "That wasn’t me. That wasn’t me. That wasn’t me..." "thoughts">>
<<addDialogue "Casey" "I have to get out of here..." "talk">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Examine a mirror|RoomMirror]]">>
<<if $InpectRoom isnot true>>
<<addDialogue "" "[[Examine the room|SearchRoomMirror]]">>
<<else>>
<<addDialogue "" "[[Inspect the hole|HoleTecho]]">>
<</if>>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Exit to the corridor|MirrorCorridor]]" "center">>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<</if>>
<<if $mirrorDemon is true>>
<<goto "mirrors2">>
<</if>>
<<script>>
window.setLighting(50);
<</script>><<dialogue "" "You approach one of the mirrors. Its surface is covered with dust and deep cracks that distort your reflection." "description">>
<<if $sanity > 50>>
<<addDialogue "" "Your reflection looks normal, though fragmented by the cracks. Nothing unusual, just an old, broken mirror." "description">>
<<elseif $sanity >= 20 and $sanity <= 50>>
<<addDialogue "" "The reflection flickers, and for a moment it seems like the image shows something else, something you're not sure you actually saw. " "description">>
<<addDialogue "" "Maybe it was just my imagination..." "thoughts">>
<<else>>
<<addDialogue "" "Your reflection smiles with a cruel smirk that doesn’t match your expression. The glass seems to vibrate slightly, as if reacting to something unseen, and an unsettling tension coils in your chest." "description">>
<<addDialogue "" "I shouldn’t be seeing this..." "thoughts">>
<<addDialogue "Casey" "This can’t be happening...!" "talk">>
<</if>>
<<addImageV "img/events/bigmirror.png">>
<<horizontalStart>>
<<if $BreakMirror isnot true>>
<<addDialogue "" "[[Break the mirror|BreakMirrorEvent]]">>
<</if>>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Mirrors]]" "center">>
<<if window.gameState.lanternOn>>
<<goto "MirrorsLight">>
<<else>>
<<dialogue "" "You try to explore the room, but the darkness keeps you from seeing anything." "description">>
<<addDialoguePos "" "[[Back|Mirrors]]" "center">>
<</if>>
<<switch visited()>>
<<case 1>>
<<dialogue "" "You look up at the hole in the ceiling, right where you fell.
From below, you can see the jagged edge of the plaster and the broken wood surrounding it. Suddenly, you see a dark silhouette leaning in, looking down directly at you, but the figure disappears as quickly as it appeared." "description">>
<<addDialogue "Casey" "Who... was that? Who are you?" "talk">>
<<addDialogue "" "Shit! Is someone following me?" "thoughts">>
<<default>>
<<addDialogue "" "You look up at the hole in the ceiling. You only see the jagged edge of the plaster and the broken wood surrounding it, bathed in the faint light of your flashlight. There’s no sign of life or movement, just the heavy silence of the building. But the feeling of being watched doesn’t go away." "description">>
<</switch>>
<<addDialoguePos "" "[[Back|Mirrors]]" "center">>
<<set $InpectRoom = true>><<if window.gameState.lanternOn>>
<<goto "Mirrors2Light">>
<<else>>
<<dialogue "" "The room is quiet. The mirrors no longer twist or distort reality. They reflect your figure accurately, with no foreign gestures or out-of-place movements. Despite the calm, the air remains heavy and cold." "description">>
<<horizontalStart>>
<<if $InpectRoom isnot true>>
<<addDialogue "" "[[Examine the room|SearchRoomMirror]]">>
<<else>>
<<addDialogue "" "[[Inspect the hole|HoleTecho]]">>
<</if>>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Exit to the corridor|MirrorCorridor]]" "center">>
<</if>><<dialogue "" "The flashlight barely manages to illuminate the place, but enough for you to notice the strange sight: dozens, perhaps hundreds of mirrors cover the walls. Many are cracked, others completely shattered. They reflect your image from every angle... staring back at you a thousand times." "description">>
<<if $sanity > 60>>
<<addDialogue "" "You only see yourself, over and over. Your silhouette repeats on every surface. You are alone." "description">>
<<addDialogue "Casey" "This was... a mirror therapy room? What kind of treatment did they do here...?" "talk">>
<<elseif $sanity >= 30 and $sanity <= 60>>
<<addDialogue "" "Some mirrors show things that aren’t in the room. In one, you see a woman standing with her back turned, still. She’s watching you. You blink… and she’s gone. Your breathing quickens. The air feels heavy." "description">>
<<elseif $sanity < 30>>
<<addDialogue "" "Your reflections don’t move like you do. One of your copies smiles cruelly... but you don’t. A soft crack makes you look closer: a crack snakes slowly across the glass in front of you. But you didn’t touch it." "description">>
<<addDialogue "" "That wasn’t me. That wasn’t me. That wasn’t me..." "thoughts">>
<<addDialogue "Casey" "I have to get out of here..." "talk">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Examine a mirror|RoomMirror]]">>
<<if $InpectRoom isnot true>>
<<addDialogue "" "[[Examine the room|SearchRoomMirror]]">>
<<else>>
<<addDialogue "" "[[Inspect the hole|HoleTecho]]">>
<</if>>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Exit to corridor|MirrorCorridor]]" "center">>
<<if $mirrorDemon is true>>
<<goto "mirrors2">>
<</if>>
<<dialogue "" "The room slowly reveals itself: walls covered by dozens, maybe hundreds, of mirrors. Some are cracked, others shattered, reflecting your image from every possible angle. The flickering light makes the reflections dance, twisting your silhouette into strange shapes. You move carefully, the flashlight’s glow barely containing the shadows creeping in the corners. Every glance feels like dozens of eyes are watching you at once. Above, you notice a large hole in the ceiling, letting in a faint shaft of pale moonlight that barely illuminates the dusty air." "description">>
<<addDialogue "" "You can't shake the feeling that something lurks just beyond the glass, waiting for you to turn your back. Your breath grows heavy and cold pins prick your skin." "description">>
<<addDialogue "Casey" "This place... it’s like a twisted gallery of broken reflections. What kind of therapy could they have done here?" "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Inspect the hole|HoleTecho]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Mirrors]]" "center">>
<<dialogue "" "The room is quiet. The mirrors no longer twist or distort reality. They reflect your figure accurately, with no foreign gestures or out-of-place movements. Despite the calm, the air remains heavy and cold." "description">>
<<horizontalStart>>
<<if $InpectRoom isnot true>>
<<addDialogue "" "[[Examine the room|SearchRoomMirror]]">>
<<else>>
<<addDialogue "" "[[Inspect the hole|HoleTecho]]">>
<</if>>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Exit to the corridor|MirrorCorridor]]" "center">>
<<dialogue "" "This corridor remains closed… for now. Perhaps in the future, new opportunities will unfold. Your support helps bring those moments closer. Thank you for being part of this story." "description">>
<div id="sup">
<a href="https://www.patreon.com/Rustlergame" target="_blank" style="display: inline-block; background-color: #F96854; color: white; padding: 10px 20px; text-decoration: none; border-radius: 4px; font-weight: bold;">Support me on Patreon</a>
</div>
<<addDialoguePos "" "[[Back|MainLobby]]" "center">>
<<dialogue "" "A bed appears in the reflected room, and your reflection slowly climbs onto it. The reflection in the mirror begins to touch itself deliberately, with slow, provocative movements. You stand frozen, unable to look away from the disturbing scene unfolding before you." "description">>
<<addVideo "media/casey/fap.mp4">>
<<addDialogue "" "Your reflection’s masturbation becomes more intense, almost frantic, as if consumed by a dark, desperate need." "description">>
<<addVideo "media/casey/fap2.mp4">>
<<addDialogue "" "What... what is happening? This can’t be real..." "thoughts">>
<<addDialogue "" "The reflection’s movements grow more intense, approaching a climax." "description">>
<<addVideo "media/casey/fap3.mp4">>
<<addDialogue "" "But just before it finishes, it suddenly stops. It turns to meet your eyes, a satisfied, almost triumphant smile curling on its lips." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|BreakMirrorEvent3]]">>
<<horizontalEnd>>
<<unlockVideo 1 9>>
<<unlockVideo 1 10>>
<<unlockVideo 1 11>> <<dialogue "" "You strike the mirror with your weapon, pouring all your fury into it. The glass shatters into countless fragments that crash to the floor with a loud crash. But before you can step back, the pieces begin to tremble. One by one, they rise into the air, floating as if time itself were rewinding. Within seconds, the mirror is whole again—flawless, without a single crack. Your reflection stares back at you, unchanged… or maybe smiling just a little more than before. From somewhere deep within the room, a chilling, demonic female laughter echoes." "description">>
<<addDialogue "Casey" "That's not normal... none of this is..." "talk">>
<<addDialogue "" "Your reflection meets your gaze, first with cold, burning fury in its eyes. But then, slowly, its expression shifts: the fury fades away, replaced by an unsettling smile. Behind it, a normal hotel room appears in the reflection, calm and unremarkable— a stark contrast to the room you’re in. Deliberately and slowly, it begins to undress. You stand frozen, stunned, unable to believe what you’re seeing." "description">>
<<addDialogue "Casey" "What the f..?" "talk">>
<<addVideo "media/casey/undressing.mp4">>
<<horizontalStart>>
<<addDialogue "" "[[Continue watching|BreakMirrorEvent2]]">>
<<horizontalEnd>>
<<addDialoguePos "" "[[Stop|stop watching]]" "center">>
<<script>>
window.HealthSanitySystem.removeSanity(5)
<</script>>
<<timed 1s>>
<<script>>
playSoundDirect('windowcrash.mp3');
<</script>>
<</timed>>
<<unlockVideo 1 8>> <<run startAdvancedBattle([
{
type: 'kikimora1',
hp: 120,
distance: 10,
randomDistance: true,
speed: "3-8",
minMovement: 3,
maxMovement: 8,
damage: 15,
DamageIgnore: {
'pistol': 0.6,
'rifle': 0.4,
'shotgun': 0.0,
'melee': 1,
'incendiary': 0.2,
'dragon_breath': 0.0,
'tracer': 0.2,
'9mm': 0.6,
'.45': 0.2,
'slugs': 0.0
}
},
], 'VictoryPassage', true, 'CombatEscape', false)>>
<<if window.ClothingSystem.currentClothes === 'jacket'>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<elseif window.ClothingSystem.currentClothes === 'coat'>>
<<setAvatarDirect "caseycoatpistol.png">>
<<else>>
<<setAvatarDirect "caseycoatpistol.png">>
<</if>>
<<script>>
// Special item example
const itemKey = 'luckycharm';
const itemName = 'Lucky Charm';
const itemDescription = 'A small trinket that brings good fortune';
const itemValue = 100;
const imagePath = `img/items/special/${itemKey}.png`;
window.itemDatabase[itemKey] = {
name: itemName,
description: itemDescription,
category: "special",
image: imagePath,
stackable: false,
maxStack: 1,
value: itemValue,
weight: 0.1,
isSellable: true,
sanityRestore: 10
};
window.ShopSystem.sellPrices[itemName] = {
buy: itemValue,
sell: Math.floor(itemValue * 0.75),
stock: 1,
img: imagePath
};
//Adding item ro inventory
const item = window.createItemInstance(itemKey, 1);
const result = window.InventorySystem.addItem(item);
if (result && window.ItemNotificationSystem) {
window.ItemNotificationSystem.show(itemKey, 1, `${itemName} acquired!`);
}
window.ShopSystem.populateSellItems();
<</script>> <<script>>
const itemKey = 'knife';
const itemName = 'Rusted Knife';
const itemDescription = 'Its a wide-bladed kitchen knife, clearly forgotten long ago. The wooden handle is cracked, damp to the touch.';
const itemValue = 75;
const weaponDamage = 8;
const imagePath = 'img/items/weapons/rustedknife.png';
// Add to Item Database
window.itemDatabase[itemKey] = {
name: itemName,
description: itemDescription,
category: "tool", // Melee weapons use "tool" category
type: "weapon", // Must be "weapon"
weaponType: "melee", // Critical: defines as melee weapon
damage: weaponDamage, // Base damage
image: imagePath,
stackable: false,
maxStack: 1,
value: itemValue,
weight: 0.5, // Lighter than crowbar
isSellable: true
};
// Add to Shop System
window.ShopSystem.sellPrices[itemName] = {
buy: itemValue,
sell: Math.floor(itemValue * 0.75),
stock: 3,
img: imagePath
};
// Add to Inventory with Notification
const item = window.createItemInstance(itemKey, 1);
const result = window.InventorySystem.addItem(item);
if (result && window.ItemNotificationSystem) {
window.ItemNotificationSystem.show(itemKey, 1, `${itemName} acquired!`);
}
// Refresh Shop UI
window.ShopSystem.populateSellItems();
<</script>><<dialogue "" "Taking a deep breath, you twist and strain your limbs against the cracked straps. The leather creaks and, one by one, they give way under your desperate effort. You rub your aching wrists, gather your clothes scattered on the floor, and dress as quickly as your trembling hands allow. Without looking back, you prepare to leave the room with your heart pounding, before the patient returns." "description">>
<<if $RapeSuck gte 5>>
<<addDialogue "" "I can’t stop now… Every step feels heavier, but I have to keep moving. My heart’s pounding so loud it’s drowning out everything else. If I slow down, even for a second… I’m done." "thoughts">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Continue|Saveroom]]">>
<<horizontalEnd>>
<<include "Change_MenuIMG">><<dialogue "" "Taking a deep breath, you twist and strain your limbs against the cracked straps. The leather creaks and, one by one, they give way under your desperate effort. You rub your aching wrists, gather your clothes scattered on the floor, and dress as quickly as your trembling hands allow. Without looking back, you prepare to leave the room with your heart pounding, before the patient returns." "description">>
<<if $RapeSuck gte 5>>
<<addDialogue "" "I can’t stop now… Every step feels heavier, but I have to keep moving. My heart’s pounding so loud it’s drowning out everything else. If I slow down, even for a second… I’m done." "thoughts">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Continue|SRcorridor]]">>
<<horizontalEnd>>
<<include "Change_MenuIMG">><<dialogue "" "Taking a deep breath, you twist and strain your limbs against the cracked straps. The leather creaks and, one by one, they give way under your desperate effort. You rub your aching wrists, gather your clothes scattered on the floor, and dress as quickly as your trembling hands allow. Without looking back, you prepare to leave the room with your heart pounding, before the patient returns." "description">>
<<if $RapeSuck gte 5>>
<<addDialogue "" "I can’t stop now… Every step feels heavier, but I have to keep moving. My heart’s pounding so loud it’s drowning out everything else. If I slow down, even for a second… I’m done." "thoughts">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Continue|SRcorridor]]">>
<<horizontalEnd>>
<<include "Change_MenuIMG">>
<<include "Change_MenuIMG">><<dialogue "" "Taking a deep breath, you twist and strain your limbs against the cracked straps. The leather creaks and, one by one, they give way under your desperate effort. You rub your aching wrists, gather your clothes scattered on the floor, and dress as quickly as your trembling hands allow. Without looking back, you prepare to leave the room with your heart pounding, before the patient returns." "description">>
<<addDialogue "Casey" ""Oh! Fuck! I think my ass is going to hurt for a while."
" "talk">>
<<if $RapeSuck gte 5>>
<<addDialogue "" "I can’t stop now… Every step feels heavier, but I have to keep moving. My heart’s pounding so loud it’s drowning out everything else. If I slow down, even for a second… I’m done." "thoughts">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Continue|SRcorridor]]">>
<<horizontalEnd>>
<<include "Change_MenuIMG">><<dialogue "" "Taking a deep breath, you twist and strain your limbs against the cracked straps. The leather creaks and, one by one, they give way under your desperate effort. You rub your aching wrists, gather your clothes scattered on the floor, and dress as quickly as your trembling hands allow. Without looking back, you prepare to leave the room with your heart pounding, before the patient returns." "description">>
<<if $RapeSuck gte 5>>
<<addDialogue "" "I can’t stop now… Every step feels heavier, but I have to keep moving. My heart’s pounding so loud it’s drowning out everything else. If I slow down, even for a second… I’m done." "thoughts">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Continue|SRcorridor]]">>
<<horizontalEnd>>
<<include "Change_MenuIMG">><<dialogue "" "Taking a deep breath, you twist and strain your limbs against the cracked straps. The leather creaks and, one by one, they give way under your desperate effort. You rub your aching wrists, gather your clothes scattered on the floor, and dress as quickly as your trembling hands allow. Without looking back, you prepare to leave the room with your heart pounding, before the patient returns." "description">>
<<addDialogue "Casey" ""Oh! Fuck! I think my ass is going to hurt for a while."
" "talk">>
<<if $RapeSuck gte 5>>
<<addDialogue "" "I can’t stop now… Every step feels heavier, but I have to keep moving. My heart’s pounding so loud it’s drowning out everything else. If I slow down, even for a second… I’m done." "thoughts">>
<</if>>
<<horizontalStart>>
<<addDialogue "" "[[Continue|Main Hallway2]]">>
<<horizontalEnd>>
<<include "Change_MenuIMG">><<dialogue "" "You regain consciousness in a gloomy room, barely lit by a flickering bulb. The walls, covered in worn leather, and the ceiling, draped with chains and ropes, seem to close in around you. The air is thick with the rancid smell of sweat and rusted metal. A man leans over you, trying to impose his will. You resist with all your strength, shaking your head and clenching your jaw as your wrists and ankles struggle against the straps that bind you." "description">>
<<addDialogue "Casey" "Get away from me!" "talk">>
<<addDialogue "Patient" "You… mine… You like, dick in mouth." "talk">>
<<addDialogue "Casey" "Son of a bitch!" "talk">>
<<addDialogue "Patient" "Nooo! Ahh!" "talk">>
<<addVideo "media/casey/castigosuck.mp4">>
<<addDialogue "" "The man’s anger overflows, and without a word, he forces himself into your mouth, overpowering your resistance." "description">>
<<addVideo "media/casey/castigosuck2.mp4">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|RapeSuck1]]">>
<<horizontalEnd>>
<<set $rapeFace = 1>>
<<script>>
window.HealthSanitySystem.removeSanity(10)
<</script>>
<<script>>
window.HealthSanitySystem.addHealth(50)
<</script>>
<<set $Corruption += 5>>
<<if $castigosuckVideo isnot true>>
<<unlockVideo 1 2>>
<<unlockVideo 1 3>>
<<set $castigosuckVideo = true>>
<</if>><<dialogue "" "The door is locked; there doesn’t seem to be any way to open it." "description">>
<<switch visited()>>
<<case 1>>
<<addDialogue "Casey" "Maybe it’s better if they don’t know what’s in here." "talk">>
<</switch>>
<<addDialoguePos "" "[[Back|Playroom]]" "center">><<dialogue "" "The room is dimly lit by a single flickering bulb, casting long, trembling shadows across the walls. Leather straps hang from hooks, and chains clink softly with every movement. The air is thick with the smell of sweat and something you’d rather not identify." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Exit|Playroom]]">>
<<horizontalEnd>>
<<set $playdoor = true>><<dialogue "" "Finally, the patient seems to find the satisfaction he was seeking. He straightens up, crosses the room, and leaves the door ajar as he exits. You feel the rope around your hands loosen, giving you a chance to break free. You’re trembling, your throat dry and your heart racing, aware that this is your moment to escape… though the mark this experience leaves will be etched in your mind, hard to erase.
" "description">>
<<addVideo "media/casey/endcastigo.mp4">>
<<addDialogue "Casey" "Shit, shit, shit! I can’t fucking believe this… That fucking bastard! Cof cof... I can still feel his hands on me… Goddammit! Cof..! I should’ve fought harder—fuck! No… no, I can’t think about it now. Just keep moving, Casey, keep moving! If he catches me again… no, fuck that, I’m not letting it happen. I’ll kill him!" "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Escape|RapeSuckEscape]]">>
<<horizontalEnd>>
<<setAvatarDirect "nude.png">>
<<if $endcastigoVideo isnot true>>
<<unlockVideo 1 4>>
<</if>><<dialogue "" "You work quickly, your hands trembling as you loosen the rope binding your wrists. You feel the fabric brush against your skin as you dress, each movement precise and charged with adrenaline and the fear still pounding in your chest. You force yourself to breathe steadily, aware that you don’t have a second to lose." "description">>
<<addDialogue "" "Why the fuck do I get stuck with this shit? Shit, shit! I should’ve never come here! I need to get out of here!" "thoughts">>
<<addDialogue "Casey" "Calm the fuck down… if I lose it now, I’m dead. Just keep moving. Hold on. I have to find my sister..." "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|Sexdungeon]]">>
<<horizontalEnd>>
<<include "Change_MenuIMG">><<dialogue "" "Finally, you decide to look away, unable to bear the disturbing image any longer. You take a step back, distancing yourself from the mirror. As you do, the figure in the reflection freezes, the smile fades, and everything falls silent." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|mirrors2]]">>
<<horizontalEnd>><<addDialogue "" "Suddenly, its face begins to change. The skin turns grayish, the eyes become completely black, and its teeth elongate into a fierce snarl. The reflection is no longer you, but a grotesque demon beginning to emerge from the mirror with a diabolical laugh." "description">>
<<addDialogue "Casey" "No... no, this can’t be happening!" "talk">>
<<addDialogue "" "Before you can react, the creature lunges at you, claws extended and ready to attack. You feel an intense cold and paralyzing terror as you struggle to escape this nightmare becoming real." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Fight the demon|FightDemon]]">>
<<horizontalEnd>>
<<set $MirrorFight = 1>>
<<set $BreakMirror = true>>
<<timed 4s>>
<<script>>
playSoundDirect('evilwoman2.mp3');
<</script>>
<</timed>>
<</if>> Single:
window.addDocumentWithNotification(
"missing_person_photo",
"Missing Person Evidence",
"Last known photograph of victim",
"",
"photo",
"📷",
{
imagePath: "img/backgrounds/hospital-entrance.png",
location: "Hospital Security Camera - Main Lobby",
photographer: "Security System Auto-Capture",
frontDescription: `Sarah Mitchell, age 22, captured on security footage at 11:47 PM on October 15th.
This was the last confirmed sighting before her disappearance. Note the anxious expression and
the way she keeps looking over her shoulder, suggesting she may have been followed.`
}
);
Double:
window.addDocumentWithNotification(
"ritual_evidence_photo",
"Ritual Site Evidence",
"Disturbing polaroid found at crime scene",
"",
"photo",
"📸",
{
imagePath: "img/backgrounds/dark_corridor.png",
location: "Abandoned Hospital - Sub-basement",
photographer: "Detective Casey",
frontDescription: `Strange symbols carved into the concrete walls of the sub-basement.
The markings appear fresh, suggesting recent activity. Blood traces found around the perimeter
have been sent for DNA analysis.`,
backImage: {
path: "img/backgrounds/hospital-entrance.png",
notes: "Message discovered on reverse side",
analysis: "Ink composition testing in progress"
},
backDescription: `Written in what appears to be dried blood: "The ritual is complete.
The door between worlds has been opened. Sarah was just the beginning.
More will follow when the moon is dark again. - The Keeper of Shadows"`
}
);
<<hideMenuElement "shop-btn">>
<style>
@media (orientation: landscape) and (max-height: 600px) {
.character-menu > div:nth-child(1) > div:nth-child(2) {
width: 18% !important;
gap: 8px !important;
transform: translate(0px, 20px) !important;
width: 15vw !important;
height: 20vw !important;
}
}
@media (min-width: 1201px) {
.character-menu-logo {
width: 100% !important;
height: 180% !important;
margin-top: -5vh !important;
transform: translate(-4px, -2px);
}
}
@media (max-width: 1200px) and (orientation: landscape) {
.character-menu-logo {
width: 90% !important;
height: 200% !important;
margin-top: -12vh !important;
transform: translate(-6px, 45px);
}
}
@media (max-width: 768px) {
.polaroid-caption {
width: 270px;
height: 85px;
font-size: 11px;
padding: 0 10px;
gap: 12px;
transform: translate(-19px, 8px);
}
}
.polaroid-caption {
width: 314px;
height: 100px;
background: #f8f8f8;
display: flex;
align-items: center;
justify-content: center;
padding: 0 12px;
font-family: 'Courier New', monospace;
font-size: 12px;
color: #333;
text-align: center;
line-height: 1.3;
box-sizing: border-box;
overflow: hidden;
gap: 10px;
}
#lantern-button {
transform: translate(-60%, -50%) !important;
}
#lantern-bar {
transform: translate(-70%, -54%) !important;
width: 33% !important;
height: 24% !important;
}
@media (pointer: coarse) and (orientation: landscape) and (max-width: 1023px) {
#lantern-button {
background-size: 80% 80% !important;
background-position: center !important;
width: 13vw !important;
height: 8vw !important;
}
}
.control-btn {
transform: translate(-7px, -26px) !important;
}
.control-btn:hover {
transform: translate(-7px, -26px) !important;
}
#fullscreen-btn {
z-index: 10000000 !important;
}
#audio-btn {
top: 70px !important;
}
.document-body {
color: #858585;
}
.gallery-section.photos.active {
row-gap: 20px;
}
#save-button.main-menu-btn:not(.main-menu #save-button) {
font-size: 20px !important;
}
.polaroid-frame, {
background: rgb(12 12 12 / 95%);
}
.polaroid-caption {
background: #999999;
}
.polaroid-side {
height: 440px;
}
.polaroid-info-line {
font-size: 11px;
color: #000000;
}
.polaroid-description {
font-size: 11px;
color: #000000;
}
.evidence-photo {
width: 314px;
height: 300px;
display: block;
object-fit: cover;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
border-radius: 2px;
margin-bottom: 12px;
}
</style><<dialogue "" "Your vision blurs for a moment... and when you blink, the hallway has changed. Where there was once only a blank wall, a door now stands." "description">>
<<addDialogue "" "It’s a pale wooden door—old, yet strangely intact—with a dusty golden handle. Nailed to the center is a hand-written sign, the ink shaky and uneven: *'HELP HER.'*" "description">>
<<addDialogue "Casey" "What the hell...? That door wasn’t there a second ago..." >>
<<addDialogue "" "A chill runs down your spine. Something deep inside pulls at you, like a silent cry echoing from the other side. You don’t know why, but your feet begin to move on their own." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Open the door|DistortedMemory]]">>
<<horizontalEnd>>
<<addImageV "img/events/sistereventdoor.png">><<dialogue "" "Your vision blurs for a moment... and when you blink, the hallway has changed. Where there was once only a blank wall, a door now stands." "description">>
<<addDialogue "" "It’s a pale wooden door—old, yet strangely intact—with a dusty golden handle. Nailed to the center is a hand-written sign, the ink shaky and uneven: *'HELP HER.'*" "description">>
<<addDialogue "Casey" "What the hell...? That door wasn’t there a second ago..." >>
<<addDialogue "" "A chill runs down your spine. Something deep inside pulls at you, like a silent cry echoing from the other side. You don’t know why, but your feet begin to move on their own." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Open the door|DistortedMemory]]">>
<<horizontalEnd>>
<<addImageV "img/events/sistereventdoor.png">><<dialogue "" "You step through the threshold and suddenly the world behind you fades into a thick fog that won’t let you go back. The air grows heavy, almost suffocating. In front of you stretches a long, narrow hallway with walls worn down by time. Everything feels both familiar and strange, like a distorted memory." "description">>
<<addDialogue "Casey" "Where the hell am I...? This doesn’t make any sense..." "talk">>
<<addDialogue "" "At the end of the hall, a figure moves slowly through the shadows. It’s a young blonde woman, fragile in presence. Her eyes search for you urgently, and for a moment you feel trapped by that look you know so well. Without a word, she steps into the last room and leaves the door ajar." "description">>
<<addDialogue "Casey" "Wait, don’t go... please!" "talk">>
<<addDialogue "" "Oh shit! It’s her!" "thoughts">>
<<addDialogue "Casey" "Angi! I came to get you out of here, just wait!" "talk">>
<<horizontalStart>>
<<addDialogue "" "[[Go to the room|MeetingAngi]]">>
<<horizontalEnd>>
<<set $brokeSister = true>><<dialogue "" "Your vision blurs for a moment... and when you blink, the hallway has changed. Where there was once only a blank wall, a door now stands." "description">>
<<addDialogue "" "It’s a pale wooden door—old, yet strangely intact—with a dusty golden handle. Nailed to the center is a hand-written sign, the ink shaky and uneven: *'HELP HER.'*" "description">>
<<addDialogue "Casey" "What the hell...? That door wasn’t there a second ago..." >>
<<addDialogue "" "A chill runs down your spine. Something deep inside pulls at you, like a silent cry echoing from the other side. You don’t know why, but your feet begin to move on their own." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Open the door|DistortedMemory]]">>
<<horizontalEnd>>
<<addImageV "img/events/sistereventdoor.png">>
<<set $bedCeventSister = true>><<dialogue "" "Your vision blurs for a moment... and when you blink, the hallway has changed. Where there was once only a blank wall, a door now stands." "description">>
<<addDialogue "" "It’s a pale wooden door—old, yet strangely intact—with a dusty golden handle. Nailed to the center is a hand-written sign, the ink shaky and uneven: *'HELP HER.'*" "description">>
<<addDialogue "Casey" "What the hell...? That door wasn’t there a second ago..." >>
<<addDialogue "" "A chill runs down your spine. Something deep inside pulls at you, like a silent cry echoing from the other side. You don’t know why, but your feet begin to move on their own." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Open the door|DistortedMemory]]">>
<<horizontalEnd>>
<<addImageV "img/events/sistereventdoor.png">>
<<set $bedAeventSister = true>><<dialogue "" "You rush to the half-open door and step into the room. Angi is sitting on the floor, hugging her knees, her eyes distant, her face a mask of fear and sadness." "description">>
<<addDialogue "Casey" "Angi... it's me, your sister. I'm here now." "talk">>
<<addDialogue "" "She slowly lifts her gaze, her voice weak and trembling, almost a whisper." "description">>
<<addDialogue "Angelica Casey" "Why... did you leave me alone?" "talk">>
<<addDialogue "Casey" "I'm sorry, I'm so sorry, I..." "talk">>
<<addDialogue "" "Her voice grows louder, cracked with pain and rage." "description">>
<<addDialogue "Angelica Casey" "You abandoned me when I needed you the most!" >>
<<addDialogue "Casey" "No... I couldn’t... I didn’t know how to help..." >>
<<addDialogue "Angelica Casey" "I don’t need you anymore! We’re not sisters!" "talk">>
<<addDialogue "Casey" "Angi, no! This isn’t you!" "talk">>
<<addDialogue "" "Suddenly, her skin begins to crack and darken. Her fingers stretch into sharp claws, and her body twists into a monstrous shape, radiating a suffocating, dark aura that fills the room." "description">>
<<addDialogue "Casey" "Shit! Who... what are you?! Where is Angi?!" "talk">>
<<addDialogue "" "The demon that once was your sister lets out a feral roar and lunges at you with unleashed fury." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Fight the demon|sistereventDemon]]">>
<<horizontalEnd>>
<<showNPC "Angi" "img/characters/angi/angi1.png" "Angelica Casey">>
<<set $EventSisterPelea = 1>><<run startAdvancedBattle([
{
type: 'twistedSister',
hp: 120,
distance: 25,
randomDistance: true,
speed: "9-15",
minMovement: 9,
maxMovement: 15,
damage: 18,
DamageIgnore: {
'pistol': 1,
'rifle': 1,
'shotgun': 1,
'melee': 0.5,
'incendiary': 0.1,
'dragon_breath': 0.0,
'tracer': 1,
'9mm': 1,
'.45': 1,
'slugs': 1
}
},
], 'VictoryPassage', false, 'CombatEscape', false)>>
<<if $CaseyCoat is true && $CaseyJacket isnot true>>
<<setAvatarDirect "caseycoatpistol.png">>
<<elseif $CaseyCoat isnot true && $CaseyJacket is true>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<else>>
<<setAvatarDirect "caseypistol.png">>
<</if>><<dialogue "" "The demon collapses to the ground with a guttural roar, its form dissolving into a slowly fading cloud of shadows. The oppressive darkness in the hallway begins to lift, revealing worn walls and a faint light shining in the distance." "description">>
<<addDialogue "Casey" "It’s over... I did it." "talk">>
<<addDialogue "" "The silence that follows feels heavy, yet strangely freeing. Your breathing steadies, and a warm sensation spreads through your body—a small spark of hope defying the darkness." "description">>
<<addDialogue "Casey" "That wasn’t Angi... but maybe, just maybe, there’s still hope. I can still save her." "thoughts">>
<<addDialogue "" "As you glance one last time at the spot where the demon vanished, something catches your eye. On the floor, among the fading shadows, lies an old, worn teddy bear." "description">>
<<horizontalStart>>
[[Pick up the teddy bear|PickUpTeddy]]
<<horizontalEnd>>
<<if $bedAeventSister is true>>
<<horizontalStart>>
<<addDialogue "" "[[Exit|BedroomA]]">>
<<horizontalEnd>>
<<elseif $bedCeventSister is true>>
<<horizontalStart>>
<<addDialogue "" "[[Exit|BedroomC]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Exit|Main hallway]]">>
<<horizontalEnd>>
<</if>>
<<script>>
window.HealthSanitySystem.addSanity(50)
<</script>>
<<dialogue "" "You stumble back, heart pounding in your chest, just as the demon lunges at you with a deafening roar. At the last second, you slip through the door and slam it shut behind you." "description">>
<<addDialogue "" "Heavy footsteps thunder on the other side, claws scrape furiously at the wood... and then, silence." "description">>
<<addDialogue "" "You hold your breath. For now... you've made it out alive." "description">>
<<addDialogue "Casey" "Shit... that thing wasn’t her. That wasn’t my sister..." "talk">>
<<addDialogue "" "I have to keep going. I have to find her..." "thoughts">>
<<addDialogue "" "Everything seems to return to normal. The hallway is clear, and the darkness has lifted. But the echo of what you saw still lingers inside you. At the end, the exit door offers you a moment of peace... at least for now. Deep down, a part of you finds relief—whatever that thing was, it wasn’t Angi. There’s still hope." "description">>
<<if $bedAeventSister is true>>
<<horizontalStart>>
<<addDialogue "" "[[Exit|BedroomA]]">>
<<horizontalEnd>>
<<elseif $bedCeventSister is true>>
<<horizontalStart>>
<<addDialogue "" "[[Exit|BedroomC]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Exit|Main hallway]]">>
<<horizontalEnd>>
<</if>>
<<script>>
window.HealthSanitySystem.addSanity(30)
<</script>>
<<dialogue "" "You pick up the teddy bear, its soft texture surprising you amid the tension. You carefully place it in your backpack, feeling it as a small symbol of hope amidst the darkness." "description">>
<<addDialogue "Casey" "This teddy... maybe it means something. Better take it with me." "talk">>
<<addDialogue "" "You head towards the exit door without looking back." "description">>
<<if $bedAeventSister is true>>
<<horizontalStart>>
<<addDialogue "" "[[Exit|BedroomA]]">>
<<horizontalEnd>>
<<elseif $bedCeventSister is true>>
<<horizontalStart>>
<<addDialogue "" "[[Exit|BedroomC]]">>
<<horizontalEnd>>
<<else>>
<<horizontalStart>>
<<addDialogue "" "[[Exit|Main hallway]]">>
<<horizontalEnd>>
<</if>>
<<script>>
const itemKey = 'teddybear';
const itemName = 'Tedd Bear';
const itemDescription = 'A small trinket that brings good fortune (restore 100 sanity).';
const itemValue = 300;
const imagePath = `img/items/special/teddybear.png`;
window.itemDatabase[itemKey] = {
name: itemName,
description: itemDescription,
category: "special",
image: imagePath,
stackable: true,
maxStack: 1,
value: itemValue,
weight: 0.2,
isSellable: true,
sanityRestore: 100
};
window.ShopSystem.sellPrices[itemName] = {
buy: itemValue,
sell: Math.floor(itemValue * 0.75),
stock: 1,
img: imagePath
};
//Adding item ro inventory
const item = window.createItemInstance(itemKey, 1);
const result = window.InventorySystem.addItem(item);
if (result && window.ItemNotificationSystem) {
window.ItemNotificationSystem.show(itemKey, 1, `${itemName} acquired!`);
}
window.ShopSystem.populateSellItems();
<</script>><<dialogue "" "You carefully put the pack of bandages into your backpack." "description">>
<<addImage "img/events/smalltaquillaopen.png">>
<<if $smallLockerCard isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Take level A magnetic card|taquillaCard]]">>
<<horizontalEnd>>
<</if>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Storage2]]" "center">>
<<set $smallLockerCard = true>><<dialogue "" "You take the Level A magnetic keycard and tuck it safely into your backpack." "description">>
<<addImage "img/events/smalltaquillaopen.png">>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Storage2]]" "center">>
<<set $smallLockerCard = true>>
<<set $cardA = true>>
<<dialogue "" "The case is locked, but the weapon appears to be in good condition—waiting to be used." "description">>
<<switch visited()>>
<<case 1>>
<<addDialogue "Casey" "This shotgun might come in handy... if I can get it out of that case." "talk">>
<</switch>>
<<if $storageKey is true>>
<<horizontalStart>>
<<addDialogue "" "[[Open glass|TakeShotgun]]">>
<<horizontalEnd>>
<</if>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Aroom]]" "center">><<dialogue "" "With skill, you open the display case and take the shotgun. It’s heavier than expected but in perfect condition, ready to be used when needed." "description">>
<<addDialogue "Casey" "What the hell is a shotgun doing in a hospital? This room feels more like an armory than a regular room. Something doesn’t add up… but I can’t stop now. I have to keep moving." "talk">>
<<addDialoguePos "" "[[Continue|Aroom]]" "center">>
<<set $openGlass = true>>
<<set $Shotgun = true>>
<<script>>window.addItemFromDatabase('shotgun', 1);<</script>><<dialogue "" "The room is dimly lit, with emergency lights casting a faint, flickering glow. Dusty metal shelves line the walls, and scattered papers lie on the floor. The reinforced glass display case that once held the shotgun now stands empty." "description">>
<<if $AmmoTake isnot true>>
<<horizontalStart>>
<<addDialogue "" "[[Check shelves|ammoescopeta]]">>
<<horizontalEnd>>
<</if>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Left Corridor1]]" "center">><<dialogue "" "You search the room thoroughly and find some shotgun ammunition tucked away on one of the dusty shelves." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Take ammo|ammoescopeta2]]">>
<<horizontalEnd>>
<<spacing "20px">>
<<addDialoguePos "" "[[Back|Left Corridor1]]" "center">><<dialogue "" "You carefully store the shotgun ammunition in your backpack, making sure it’s well secured." "description">>
<<if $Shotgun is true>>
<<addDialogue "Casey" "Perfect, just what I needed." "talk">>
<</if>>
<<addDialoguePos "" "[[Back|Left Corridor1]]" "center">>
<<script>>window.addItemFromDatabase('shotgun_shells', 18);<</script>><<dialogue "" "Before you stretches a huge greenhouse. Its glass structure, slightly fogged and covered with moss in the corners, reflects the daylight with soft glimmers. The green, damp leaves of plants peeking through the gaps in the metal frame show signs of contained life." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Check door|greenhouseDoor]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Back to garden|Garden-MainPath]]">>
<<horizontalEnd>>
<<set $inveradero = true>><<dialogue "" "You check the greenhouse door. It’s closed and appears to be locked." "description">>
<<switch visited()>>
<<case 1>>
<<addDialogue "Casey" "After all these years of the hospital being abandoned, I wonder where they could have kept the key..." "talk">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Back to garden|GreenhouseEntrada]]">>
<<horizontalEnd>>
<<switch visited()>>
<<case 1>>
<<dialogue "" "At the end of the path, you see a large warehouse looming ahead. Its worn metal walls and dark tiled roof seem out of place among the surrounding vegetation. Vines crawl up the walls, almost trying to conceal it. The old metal door, with rusted hinges, appears to be sealed shut." "description">>
<<addDialogue "Casey" "I wonder what kind of things they keep in a place like this..." "talk">>
<<addDialogue "" "There has to be a way in." "thoughts">>
<<default>>
<<dialogue "" "The large warehouse stands as always, its worn metal walls and dark tiled roof contrasting with the wild vegetation that surrounds it. Vines steadily climb the walls, wrapping around the structure like a living shroud, while tall grass and wildflowers grow unchecked around its base." "description">>
<<set $randomComent = random(3)>>
<<if $randomComent is 0>>
<<addDialogue "" "There has to be a way in." "thoughts">>
<</if>>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Check warehouse door|warehouseDoor]]">>
<<horizontalEnd>>
<<horizontalStart>>
<<addDialogue "" "[[Back to garden|Garden-LeftPath]]">>
<<horizontalEnd>>
<<set $warehouse = true>><<dialogue "" "You approach the metal door and examine it carefully. It’s firmly sealed, the rusted hinges barely budging. There’s no visible lock or any sign of a mechanism to open it from the outside." "description">>
<<switch visited()>>
<<case 1>>
<<addDialogue "" "This doesn’t look like an entrance meant to be opened easily. Someone wants to keep this shut… or prevent someone from getting out." "thoughts">>
<</switch>>
<<horizontalStart>>
<<addDialogue "" "[[Back|BigWarehouse]]">>
<<horizontalEnd>>
<<script>>
// Define el widget de cuenta regresiva mejorado
Macro.add('countdown', {
handler: function () {
const duration = this.args[0] || 60;
const targetPassage = this.args[1] || 'NuevoPasaje';
const countdownId = 'countdown';
if (State.variables.countdownActive === true) {
return;
}
State.variables.countdownActive = true;
let countdownContainer = document.getElementById(countdownId + '-container');
if (!countdownContainer) {
// Contenedor principal
countdownContainer = document.createElement('div');
countdownContainer.id = countdownId + '-container';
countdownContainer.style.position = 'fixed';
countdownContainer.style.top = '3%';
countdownContainer.style.right = '3%';
countdownContainer.style.zIndex = '1000000';
// Crear el cronómetro con estilo cinematográfico
const timerBox = document.createElement('div');
timerBox.style.cssText = `
background: linear-gradient(135deg, rgba(0,0,0,0.9), rgba(20,20,20,0.95));
border: 2px solid rgba(255,193,7,0.6);
border-radius: 12px;
padding: 15px 20px;
box-shadow:
0 0 20px rgba(255,193,7,0.3),
inset 0 1px 1px rgba(255,255,255,0.1),
0 8px 32px rgba(0,0,0,0.8);
backdrop-filter: blur(10px);
position: relative;
min-width: 120px;
text-align: center;
animation: fadeInPulse 0.8s ease-out;
`;
// Efecto de brillo en el borde
const glowEffect = document.createElement('div');
glowEffect.style.cssText = `
position: absolute;
top: -2px; left: -2px; right: -2px; bottom: -2px;
background: linear-gradient(45deg,
transparent, rgba(255,193,7,0.4), transparent);
border-radius: 12px;
z-index: -1;
animation: borderGlow 2s ease-in-out infinite alternate;
`;
timerBox.appendChild(glowEffect);
// Etiqueta "TIME LEFT"
const label = document.createElement('div');
label.style.cssText = `
color: rgba(255,193,7,0.8);
font-family: 'Arial', sans-serif;
font-size: 11px;
font-weight: bold;
letter-spacing: 1px;
margin-bottom: 5px;
text-shadow: 0 0 6px rgba(255,193,7,0.5);
opacity: 0.9;
`;
label.textContent = 'TIME LEFT';
timerBox.appendChild(label);
// Contenedor del tiempo
const timeDisplay = document.createElement('div');
timeDisplay.style.cssText = `
display: flex;
justify-content: center;
align-items: center;
gap: 3px;
`;
// Segundos
const secondsElement = document.createElement('div');
secondsElement.id = countdownId;
secondsElement.style.cssText = `
color: #fff;
font-family: 'Courier New', monospace;
font-size: 28px;
font-weight: bold;
text-shadow:
0 0 10px rgba(255,193,7,0.8),
0 0 20px rgba(255,193,7,0.4),
2px 2px 4px rgba(0,0,0,0.8);
transition: all 0.3s ease;
`;
// Separador
const separator = document.createElement('div');
separator.style.cssText = `
color: rgba(255,193,7,0.7);
font-family: 'Courier New', monospace;
font-size: 28px;
font-weight: bold;
text-shadow: 0 0 8px rgba(255,193,7,0.6);
animation: blink 1s ease-in-out infinite;
`;
separator.textContent = '.';
// Milisegundos
const msElement = document.createElement('div');
msElement.id = countdownId + '-ms';
msElement.style.cssText = `
color: rgba(255,193,7,0.9);
font-family: 'Courier New', monospace;
font-size: 18px;
font-weight: bold;
text-shadow: 0 0 8px rgba(255,193,7,0.6);
`;
timeDisplay.appendChild(secondsElement);
timeDisplay.appendChild(separator);
timeDisplay.appendChild(msElement);
timerBox.appendChild(timeDisplay);
// Barra de progreso
const progressBar = document.createElement('div');
progressBar.style.cssText = `
width: 100%;
height: 4px;
background: rgba(255,255,255,0.1);
border-radius: 2px;
margin-top: 10px;
overflow: hidden;
box-shadow: inset 0 1px 2px rgba(0,0,0,0.5);
`;
const progressFill = document.createElement('div');
progressFill.id = countdownId + '-progress';
progressFill.style.cssText = `
height: 100%;
background: linear-gradient(90deg,
rgba(255,193,7,1),
rgba(255,193,7,0.7));
border-radius: 2px;
transition: width 0.1s linear;
box-shadow: 0 0 8px rgba(255,193,7,0.6);
`;
progressBar.appendChild(progressFill);
timerBox.appendChild(progressBar);
countdownContainer.appendChild(timerBox);
document.body.appendChild(countdownContainer);
// Añadir estilos CSS para animaciones
if (!document.getElementById('countdown-styles')) {
const styleSheet = document.createElement('style');
styleSheet.id = 'countdown-styles';
styleSheet.textContent = `
@keyframes fadeInPulse {
0% { opacity: 0; transform: scale(0.8); }
50% { opacity: 1; transform: scale(1.05); }
100% { opacity: 1; transform: scale(1); }
}
@keyframes borderGlow {
0% { opacity: 0.3; }
100% { opacity: 0.8; }
}
@keyframes blink {
0%, 50% { opacity: 1; }
51%, 100% { opacity: 0.3; }
}
@keyframes urgentPulse {
0%, 100% { transform: scale(1); }
50% { transform: scale(1.03); }
}
@keyframes criticalFlash {
0%, 100% {
border-color: rgba(255,193,7,0.6);
box-shadow: 0 0 20px rgba(255,193,7,0.3);
}
50% {
border-color: rgba(220,53,69,0.8);
box-shadow: 0 0 25px rgba(220,53,69,0.5);
}
}
`;
document.head.appendChild(styleSheet);
}
}
const startTimeKey = `countdownStartTime_${countdownId}`;
let startTime = State.variables[startTimeKey];
if (!startTime) {
startTime = Date.now();
State.variables[startTimeKey] = startTime;
}
const updateCountdown = () => {
const nowTime = Date.now();
const elapsed = (nowTime - startTime) / 1000;
let remainingTime = Math.max(0, duration - elapsed);
const seconds = Math.floor(remainingTime);
const milliseconds = Math.floor((remainingTime - seconds) * 100);
// Actualizar display
const secondsEl = document.getElementById(countdownId);
const msEl = document.getElementById(countdownId + '-ms');
const progressEl = document.getElementById(countdownId + '-progress');
const container = document.getElementById(countdownId + '-container');
if (secondsEl) {
secondsEl.textContent = String(seconds).padStart(2, '0');
msEl.textContent = String(milliseconds).padStart(2, '0');
// Actualizar barra de progreso
const progressPercent = (remainingTime / duration) * 100;
progressEl.style.width = progressPercent + '%';
// Efectos según el tiempo restante
if (remainingTime <= 10 && remainingTime > 5) {
// Advertencia: pulso suave
container.style.animation = 'urgentPulse 1s ease-in-out infinite';
progressEl.style.background = 'linear-gradient(90deg, rgba(255,193,7,1), rgba(255,152,0,0.9))';
} else if (remainingTime <= 5) {
// Crítico: flash rojo
container.style.animation = 'criticalFlash 0.5s ease-in-out infinite';
progressEl.style.background = 'linear-gradient(90deg, rgba(220,53,69,1), rgba(255,193,7,0.8))';
secondsEl.style.color = '#dc3545';
}
}
if (remainingTime <= 0) {
clearInterval(intervalId);
if (document.getElementById(countdownId + '-container')) {
document.body.removeChild(document.getElementById(countdownId + '-container'));
}
Engine.play(targetPassage);
delete State.variables.countdownIntervalId;
delete State.variables[startTimeKey];
delete State.variables.countdownActive;
}
};
const intervalId = setInterval(updateCountdown, 10);
State.variables.countdownIntervalId = intervalId;
updateCountdown();
}
});
// Widget para eliminar la cuenta regresiva (sin cambios)
Macro.add('removecountdown', {
handler: function () {
const countdownContainer = document.getElementById('countdown-container');
if (countdownContainer) {
document.body.removeChild(countdownContainer);
}
let existingIntervalId = State.variables.countdownIntervalId;
if (existingIntervalId) {
clearInterval(existingIntervalId);
delete State.variables.countdownIntervalId;
const startTimeKey = `countdownStartTime_countdown`;
delete State.variables[startTimeKey];
delete State.variables.countdownActive;
}
}
});
<</script>><<include "Countdown">>window.startSimpleBattle(['wolf', 'wolf'], 15, 'forest_victory', false, 'ran_away_passage', true);
window.startSimpleBattle(['imposibleAberration', 'nightmareShade'], 8, 'nightmare_ended', false, null, true);
enemies1) enemies 2) distance 3) victory passage 4) button escape 5)escape passage 6)ignore death
<<run startAdvancedBattle([
{
type: 'imposibleAberration',
hp: 800,
distance: 50,
randomDistance: true,
speed: "13-18",
minMovement: 13,
maxMovement: 18,
damage: 22,
DamageIgnore: {
'pistol': 0.7,
'rifle': 0.6,
'shotgun': 0.8,
'melee': 0.5,
'incendiary': 0.1,
'dragon_breath': 0.0,
'tracer': 0.2,
'9mm': 0.8,
'.45': 0.7,
'slugs': 0.9
}
},
{
type: 'nightmareShade',
hp: 120,
distance: 180,
randomDistance: true,
minMovement: 10,
maxMovement: 35,
sanityDamage: 18,
DamageIgnore: {
'pistol': 0.6,
'rifle': 0.5,
'shotgun': 0.7,
'melee': 0.4,
'incendiary': 0.0,
'piercing': 0.3,
'dragon_breath': 0.1
}
}
], 'VictoryPassage', false, 'fled_from_nightmare', true)>>
<<dialogue "" "Your strength fades. The nurse close in, their cold, unblinking eyes locked on you as they advance." "description">>
<<addDialogue "" "No… I can’t keep going…" "thoughts">>
<<addDialogue "Mad Nurse" "Hahaha! You are mine!" "talk">>
<<addDialogue "" "The nurse grabs your arm with inhuman strength while another pulls out a syringe that gleams under the dim hallway light. The sting is quick, but the burning that spreads through your body freezes you in place." "description">>
<<addDialogue "Casey" "Dam…" "talk">>
<<dialogue "" "Your voice fades. Darkness comes, carried by the echo of their footsteps and the chilling realization that they’re dragging you toward a fate with no easy escape." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|nurseEvent1]]">>
<<horizontalEnd>>
<<set $TNurses = 0>>
<<set $Corruption += 3>>
<<set $CaseyRape +=1>>
<<script>>
window.HealthSanitySystem.removeSanity(10)
<</script>>
<<script>>
window.HealthSanitySystem.addHealth(50)
<</script>><<dialogue "" "You wake up with a heavy head, your senses clouded, and a cold metallic feeling in your stomach. The room smells of disinfectant. One of the nurses watches you from the corner, her expression a twisted mix of curiosity and cruelty. You feel your arms restrained and an oppressive pressure running through your body. Your thoughts grow hazy as the nurse leans over you, whispering something you can’t quite make out." "description">>
<<addDialogue "Casey" "No… What… is she doing to me?" "talk">>
<<addDialogue "Mad Nurse" "Don’t think of it as punishment… We’re just getting you ready… and while we’re at it, we might as well have a little fun. Heh… heh… heh…" "talk">>
<<addDialogue "" "An involuntary shiver runs down your spine, accompanied by a strange, deeply invasive sensation… and then, suddenly, a sharp pain seizes you." "description">>
<<addVideo "media/casey/blackdildo.mp4">>
<<horizontalStart>>
<<addDialogue "" "[[Scream|nurseEvent2]]">>
<<horizontalEnd>>
<<setAvatarDirect "nude.png">>
<<if $blackdildoVideo isnot true>>
<<unlockVideo 1 12>>
<<unlockVideo 1 13>>
<<unlockVideo 1 14>>
<<set $blackdildoVideo = true>>
<</if>><<dialogue "" "The nurse has left, and at last a brief moment of respite opens up before you. The pain still pierces you like a burning dagger in your rear, stabbing with every movement, reminding you how close you came to completely collapsing. Every step is a challenge, and each breath mixes with a gasp of agony." "description">>
<<addDialogue "Casey" "Damn… I can barely walk… but I have to get out of here." "thoughts">>
<<addDialogue "" "With effort, you push yourself up and begin to dress hastily. The clothes feel rough and tight against your sore skin, but every piece put on is a small act of control over this nightmare." "description">>
<<addDialogue "Casey" "Ohh, my ass!" "talk">>
<<addDialogue "" "Clinging to every wall for support, you move slowly toward the exit. Every meter gained is a small victory, and each ragged breath brings you closer to freedom, while the pain keeps reminding you how fragile you are… but also how strong you need to be to survive. Finally, you manage to stand steadily on your own. The searing pain eases just a little, letting you focus on moving forward without crumpling under it." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Escape|BedroomC]]">>
<<horizontalEnd>>
<<include "Change_MenuIMG">>
<<run startAdvancedBattle([
{
type: 'strongNurse',
hp: 100,
distance: 15,
randomDistance: true,
speed: "3-8",
minMovement: 4,
maxMovement: 8,
damage: 10,
DamageIgnore: {
'pistol': 0.3,
'rifle': 0.2,
'shotgun': 0.0,
'melee': 0.4,
'incendiary': 0.1,
'dragon_breath': 0.0,
'tracer': 0.0,
'9mm': 0.5,
'.45': 0.4,
'slugs': 0.0
}
}
], 'VictoryPassage', true, 'CombatEscape', false)>>
<<if $CaseyCoat is true && $CaseyJacket isnot true>>
<<setAvatarDirect "caseycoatpistol.png">>
<<elseif $CaseyCoat isnot true && $CaseyJacket is true>>
<<setAvatarDirect "caseyjacketpistol.png">>
<<else>>
<<setAvatarDirect "caseypistol.png">>
<</if>><<dialogue "Casey" "Ahh! NO!" "talk">>
<<addDialogue "" "The pain rips through you like fire burning from within. Every breath tears at your throat, your muscles tense painfully, and your heart pounds with a frantic rhythm that feels like it might tear itself from your chest." "description">>
<<addDialogue "" "God… it hurts… it hurts so much I feel like I’m going to break!" "thoughts">>
<<addDialogue "" "The nurse continues with a new wave." "description">>
<<addVideo "media/casey/blackdildo1.mp4">>
<<addDialogue "Casey" "Oh my God! Stop!" "talk">>
<<addDialogue "Mad Nurse" "Just a little more… your orifices need to be ready…" "talk">>
<<addVideo "media/casey/blackdildo2.mp4">>
<<addDialogue "" "She finally steps back, but her gaze never leaves you, that cruel smile freezing your blood, as if she were savoring every second of your agony." "description">>
<<addDialogue "Mad Nurse" "That should keep you quiet… for a while." "talk">>
<<addDialogue "" "Without another word, she turns and walks away, leaving the door ajar. The stabbing, paralyzing pain courses through every breath, but between gasps and tremors, you manage to gather enough strength to push yourself up and crawl toward the exit, wishing with every fiber of your being to escape this nightmare." "description">>
<<horizontalStart>>
<<addDialogue "" "[[Continue|nurseEventEscape]]">>
<<horizontalEnd>>